一.new 关键字:
一. new关键字在创建对象的时候做的事情:
1.在堆中开辟空间,对象的成员属性会跟随对象进入到堆内存中并附默认值
2.调用构造器对象初始化信息
3.将地址返回给引用
二. 构造器|构造函数|构造方法:
构造器是一个特殊的方法
构造器的作用:
为对象初始化信息的,不是创建对象
使用:
跟随new一起使用
定义:
修饰符 类名(参数列表){
....
}
构造器的定义不需要返回值类型|void
构造器的名字必须与类名保持一致
可以使用return,结束方法
方法可以重载,构造器也具有重载的特性,因为构造器是个特殊的方法
三. 注意:
1.如果没有显示定义任何构造器,编译器会为你默认提供一个空构造(没有参数的构造器)
2.如果有显示定义的构造器,编译器不会再为你提供任何构造器了
以后再去定义自定义的模板类的时候,至少为它提供一个空构造
</>public class Demo01 {
public static void main(String[] args) {
Student s=new Student(); //()用来匹配不同的构造器
System.out.println(s);
s.name="王健林";
s.age=19;
s.school="清华";
s.study();
s.info();
//创建对象的同时为这个对象的某些成员属性赋值
Student s2=new Student("杨洋");
Student s3=new Student("杨洋
",20,"清华大学");
s3.age=21;
s2.info();
s3.info();
//s3.Student();
//Scanner sc=new Scanner();
}
}
</>
二.this关键字:
this关键字
this指代当前new的对象,动态的执行不同的对象
构造器的首行调用本类中的其他构造器
this(参数列表);
注意:必须用在构造器首行才可以
构造器之间不能相互调用
区分同名变量问题
this存储这个对象的地址
在成员方法中,this指代当前调用这个成员方法的对象
如果出现同名变量的问题,想要指代成员变量必须使用this
如果不存在同名问题,this可以省略
在构造器中,this指代当前new的对象
注意: this和static不能同时使用
三.Static 关键字:
static 关键字
静态的,是一个成员修饰符,只能修饰成员,不能修饰局部
修饰变量: 静态变量|类变量
修饰方法: 静态方法|类方法
静态内容的使用方式
1.对象使用
引用名.静态变量名
引用名.静态方法名()
2.通过类名使用
类名.静态变量名
类名.静态方法名()
成员都是属于对象的,静态的内容是属于类的
静态的变量在静态区中存在,是独一份的,所有对象共享的资源,在类第一次加载之后就初始化了
成员的变量在对象的内存空间中,跟随对象存在的,有一个对象就有一份成员
this不能在static修饰的方法中使用
静态的内容中只能直接使用静态的内容,不能直接使用成员的内容,但是可以通过对象使用
成员内容中可以直接使用静态的可以直接使用非静态的内容
</>
class Dog{
//成员变量
String name;
int age;
//静态的地区 ,所有的狗共享的
static String location = "上海";
public Dog() {
}
public Dog(String name,int age) {
this.name=name;
this.age=age;
}
//成员方法
public static void wang(){
System.out.println("wangwangwang");
}
//成员方法
public void info(){
System.out.println(name+","+age);
}
}
</>