用构造器确保初始化
构造器名称与类名称相同,是一种特殊类型的方法,因为它没有返回值,与返回值为空(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
浙公网安备 33010602011771号