用构造器确保初始化

构造器名称与类名称相同,是一种特殊类型的方法,因为它没有返回值,与返回值为空(void)明显不同。

在创建对象时,会为对象分配存储空间,并调用相应的构造器。

不包含任何参数的构造器叫做默认构造器。

方法重载

一个类中定义多个方法,而这些方法名称相同,参数不同(参数的个数,参数的类型)。

区分重载的方法:每个重载的方法都必须有一个独一无二的参数类型列表。

默认构造器

默认构造器又名无参构造器,如果类中没有构造器,编译器会自动帮你创建一个默认构造器。但是,如果已经定义一个构造器(无论是否有参数),编译器就不会帮你自动创建默认构造器。

使用的时候没有

this关键字

this关键字只能在方法内部使用,表示“调用方法的那个对象”的引用。但要注意,如果在方法内部调用同一个类的另一个方法,就不必使用this,直接调用即可。

public class Test{
    public Test(){

    }
    void print(int i){
         System.out.println(i);
    }
    
    public static void main(String[] args){
         Test t1=new Test();
         Test t2=new Test();
          t1.print(1);
          t2.print(2);
    }
}
//暗自把“所操作对象的引用”作为第一个参数传递给print    
//相当于 Test.print(t1,1); Test.print(t2,2);

this关键字返回对当前对象的引用。

使用this关键字区分成员变量和参数。

this()及加参数的方式调用对应的构造方法,且this()方法只能放在构造器中的第一行。

public class Test(){
    String s;
    public Test(){
         this("test");
    }
    public Test(String s){
         this.s=s;
    }
}

在构造器中调用构造器

构造器中只能用this调用一个构造器,并且必须置于初始处。

除构造器之外,编译器禁止在其他任何方法中调用构造器。

static的含义

1)static是一个修饰符,用于修饰成员,static修饰的成员变量称之为静态变量或类变量。

2)static修饰的成员被所有的对象共享。

3)static优先于对象存在,因为static的成员随着类的加载就已经存在。

4)static修饰的成员多了一种调用方式,可以直接被类名所调用。

5)static修饰的数据是共享数据,对象中的存储的是特有的数据。

private static int age; //静态变量或类变量
private String name; //成员变量
//静态函数,可直接用类来调用
public static void show(){
     System.out.println("static");
}
//成员函数,需要创建对象才可以调用
public void test(){
     System.out.println("none static");
}

成员变量和静态变量的区别:

1)生命周期的不同

      成员变量随着对象的创建而存在,随着对象的回收而释放。

      静态变量随着类的加载而存在,随着类的消失而消失。

2)调用方式不同

      成员变量只能被对象调用。

      静态变量可以被对象调用,也可以用类名调用。

3)别名不同

      成员变量也称为实例变量。

       静态变量称为类变量。

4)数据存储位置不同

       成员变量数据存储在堆内存的对象中,所以也叫对象的特有数据。

       静态变量数据存在方法区(共享数据区)的静态区,所以也叫对象的共享数据。

static使用时需要注意的事项:

1)静态方法只能访问静态成员。(非静态既可以访问静态,又可以访问非静态)

2)静态方法中不可以使用this或者super关键字。

3)主函数是静态的。

 posted on 2019-02-27 20:47  会飞的金鱼  阅读(133)  评论(0)    收藏  举报