【java基础】第三章 java类与对象

#类的定义形式:[public] [abstract|final] class classname {

//定义变量成员

//定义方法成员

}

#变量成员定义形式:[public|protect|private] [static] [final]  [transient] [volatile] type variableName

#引用对象成员形式:使用点;

#方法成员定义形式:[public|protect|private] [static] returnType methodName ([paramList]){}

#方法名和参数列表唯一表示某个方法;

#创建类对象:ATypeName a=new ATypeName ();

#static 修饰成员和类相关,不是和具体对象相关。

静态成员变量也称为类变量,由多个对象实例共享一个内存区,共享一个值,类变量不仅可以通过对象访问,也可以通过类名直接访问。(类名.类变量名)

非静态变量也称为实例变量,有各自的内存区。

静态成员方法也成为类方法,类方法中不能使用this或super。

非静态方法成员称为实例方法;

#访问控制符修饰的成员变量访问权限:

  同一个类中 同一个包中 不同包中的子类 不同包中的非子类
public 可以 可以 可以 可以
protect 可以 可以 可以  
默认(包) 可以 可以    
private 可以      

#成员初始化顺序:按定义顺序在方法调用之前初始化

#Object类是所有java类的基类,可以使用类型为Object的变量引用任意类型的对象。

如果要对Object类的变量进行任何专门操作,都需要知道他们的原始类型并进行类型转换。

Object obj=new MyObject ();  //低等级类型自动转换为高等级类型

MyObject x=(MyObject)obj; //高等级类型需要强制类型转换

#System.err打印红色字体到控制台

#String类

String类中每一个看起来会修改String值的方法实际上都是创建了一个全新的Sring对象,以包含修改后的字符串内容,并未改动最初的String对象,只是不能再访问这个对象了;这是String类一个重要特点,代表不可变字符串。

public class Test{
    public static void main(String []args){
        String s1="hellow";
        String s2="world";
        String s3="hello";
        System.out.println(s1==s3);   // true 引号生成字符串存储在常量池中
        s1=new String("hello");
        s2=new String("hello");
        System.out.println(s1==s2);   // false  构造方法生成对象存储在堆中
        System.out.println(s1.equals(s2));  //true
}}

静态方法valueOf()将其他类型转换为字符串。

split()方法将一个字符串按照一个分隔符进行分隔,返回分隔后的字符串数组。

public class Test{
    public static void main(String [] args){
        int j=1234567;
        String sNumber=String.valueOf(j);
        System.out.println(sNumber.length());           //7
        String s="Mary,F,1976";   
        String [] sPlit=s.split(", ");             //以“ ,”为分隔符返回三个字符串的字符串数组
        for(int i=0;i<sPlit.length;i++){
                System.out.println(sPlit[i]);     //Mary F 1976          
        }
    }
}

#StringBuffer类和StringBuilder类

String对象一经创建,他的值就确定了,而对于StringBuilder类或StringBuffer类,可以向其中添加插入追加新的内容。

eg. 有代码:String text=“ ”;

int i=0;

text=text+i;

在java中text=text+i;是通过下面方式实现的:

StringBulider builder=new StringBuilder(text);

builder.append(String.valueOf(i)):

text=builder.toString();

StringBuilder和StringBuffer功能上相同,StringBuffer是线程安全的,StringBuilder类被设计成StringBuffer的一个简易替换,用在字符串缓存区被单个线程使用时(很普遍)。建议优先采用StringBuilder类,大多数情况下比StringBuffer类块。

#多次调用一个方法:obj.f().f().f()...

猜你喜欢

转载自blog.csdn.net/liugf2115/article/details/85246430