在java中定义类时需要用关键字class
比如:定义一个人的类
人:属性:姓名、年龄…………
行为:吃饭、睡觉…………
class为关键字,Demo1为类名、{}中为类的主体
注意:①在java文件中一般只有一个public修饰的类;②public修饰的类名必须和文件名一致
name、age表示这个类的成员变量
set()、eat()、sleep()表示这个的成员方法
定义好了一个类,将使用这些类来实例化
实例化:用类 类型 创建对象的过程,在java中采用new来实例化对象
当我们想要访问这个类里面的成员变量和成员方法时,可以通过 对象名 + ·
一个类可以实例化多个对象
在内存中的存放:
this的使用:
通过上述代码发现,每次想要给一个对象进行设置姓名和年龄的时候,总需要采用“对象名+·"去实现,在代码实现上有些繁琐,此时可以"将给姓名和年龄赋值"放在一个方法里面。
使用this的原因:当形参名不小心和成员变量名一样时,系统会不清楚到底是谁赋值给谁。this引用指向成员方法运行时调用该成员方法的对象,加上this是表示给当前对象赋值。
构造方法:
在 Demo1 demo1 = new Demo1() 这句代码中,实例化对象此时会调用对象的构造方法。但是我们在代码中并没有看到这个构造方法。
所以当我们没有写任何的构造方法时,java会提供一个默认的不带参数的构造方法。
构造方法:①方法名和类名一样;②没有返回值;③在整个生命周期内只调用一次
有参数的构造方法:
注意:
①如果代码中没有写构造方法,则编译器会生成一个无参的构造方法
②如果用户自己定义了构造方法,则编译器不在生成,并且优先使用用户自己定义的构造方法
原因:因为用户自己定义了一个有参的构造方法,所以编译器会优先使用用户自己定义的构造方法,并且不再生成无参的构造方法,但是在实例化时没有给值说明调用无参的构造方法,所以此时编译器报错。
解决:用户自己定义一个无参的构造方法