现在的位置: 首页 > 综合 > 正文

《Java7程序设计》第5章 核心类

2018年04月10日 ⁄ 综合 ⁄ 共 2660字 ⁄ 字号 评论关闭
java.lang.Object
java.lang.StringBuffer
java.lang.StringBuilder
数组
java.lang.System
java.util.Scanner

5.1 java.lang.Object

protected Object clone()

public boolean equals(Object obj)
protected void finalize()
public final class getClass()
public int hashCode()
public String toString()

5.2 java.lang.String

String实例时不可变的。String对象属于常量。


通常使用:String s = "Java is cool";

如果是String s = new String("Java is cool");则JVM会始终给String创建一个新的实例。
所以使用字符串字面量比较好。在创建字符串时候很少使用关键字new。

s1.equals("Java")如果s1null的话,会出现运行时错误。所以需要检查是否为空。

    if(s1!=null && s1.equals("Java"))等效于if("Java".equals(s1))


5.2.6 字符串操作方法

public char chatAT(int index)    返回指定索引处的字符

public String concat(String s)    连接字符串

public boolean endsWith(String suffix)

public int indexOf(String substring)    第一次遇到指定字符串的索引

public int indexOf(String substring,int fromIndex) 

public int lastIndexOf(String substring)

public String substring(int beginIndex)

public String[] split(String regEx)

String.valueOf(23)返回字符串“23”


5.3 java.lang.StringBuffer和java.lang.StringBuilder

java.lang.StringBuffer 是同步的,适合用于多线程的环境。用于可变字符串。

java.lang.StringBuilder JDK5中添加的非同步版本。它的构造器和方法与StringBuffer是一样的。

构造函数:

public StringBuilder()

public StringBuilder(CharSequence seq)

public StringBuilder(int capacity)    对象的容量默认为16个字符。

public
StringBuilder(String string)

方法:

public
int capacity()

public
int length()

public
StringBuilder append(String string)

public
StringBuilder insert(int offset,String string)


 

5.4 基本类型包装

如果想将基本类型值保存在Collection中,它们就必须先转换成对象。

java.lang:Boolean,Character,Byte,Double,Folat,Integer,Long和Short。

public static int parseInt(String string)
public static String toString(int i)

从字符串中获取对应的基本数据类型

Short.parseShort(string, radix);比如10,2,那么就表示这个10是一个二进制数

将基本数据类型转换为字符串

Short.toString(short);通过tostring方法,传入一个基本数据类型,我们就可以得到一个String对象。



5.6 java.lang.Class

java.lang.Class

    每当JVM创建一个对象的时候,也创建一个java.lang.Class对象,用来描述这个对象的类型。同一个类的所有实例都共有一个Class对象。
    通过调用对象的getClass方法可以得到这个Class对象。这个方法是从java.lang.Object处继承得到的。
String country = "Fiji";
Class myClass = country.getClass();//载入指定的类
System.out,println(myClass.getName());//输出java.lang.String
getName()方法返回Class对象所表示的那个类的全类名。
public static Class forName (String className)
创建一个指定类名的Class对象。
public Object newInstance()
创建一个类的一个新实例。
为什么需要forName()和newInstance()方法:
    因为有的时候,在编写程序的时候还不知道这个类的名称。
Class klass = null;
try{
 klass = Class.forName(app05.Test);
}catch(ClassNotFoundException e){
}
if(klass = null){
 try{
  //创建Test类的一个实例
  Test test = (Test) klass.newInstance();
 }catch(IllegalAccessException e){
 }catch(InstantiationException e){
 }
}


5.8 java.util.Scanner

接收键盘输入。

Scanner scanner = new Scanner(System.in);
String s = scanner.next();


子类实例化



 

        子类实例化的时候,先调用父类的无参构造器。如果想要调用另一个构造器的话,使用super关键字,而且这一句必须在第一条语句。如果超类没有无参构造器,并且也没有从子类显式调用另一个构造器,会产生一个编译错误。super还可以调用超类的隐藏成员。


关键字instanceof

String s = "Hello";

if(s instanceof java.lang.String) true

String s1 = null;

if(s1 instanceof java.lang.String) false





 


抱歉!评论已关闭.