目标:
1.掌握类的定义方式以及对象的实例化
2.掌握类中的成员变量和成员方法的使用
3.掌握对象整个初始化过程
一、类的定义格式
比如创建一个学生类,代码演示如下:
//创建学生类
class Student{
//包含字段(属性)或者成员变量、行为、方法
public String name;
public String gender;
public int age;
//行为
public void GoToClass(){
System.out.println("按时上课!");
}
public void DoHomeWork(){
System.out.println("完成作业!");
}
public void Test(){
System.out.println("逢考必过!");
}
}
上面定义了一个简单的类,其中class为定义类的关键字,Dog为类的类名,{}中为类的主体,其中就包含了学生的部分属性和学生的一些行为。
注意事项:
1.类名要用大驼峰表示
2.一个文件一个类
3类名与文件名相同
4.main所在的类一般要用public修饰
二、类的实例化
什么是类的实例化?简单来说就是用类类型创建对象的过程,称为类的实例化。
在java中,采用new关键词来配合类名来实例化对象。
public static void main3(String[] args) {
//实例化对象
Student student = new Student();
//初始化
student.name = "周瑜";
student.gender = "男";
student.age = 20;
System.out.println(student.name+" "+student.gender+" "+student.age);
student.GoToClass();
student.DoHomeWork();
student.Test();
}
由此可见,new关键字实例化了一个对象student,并成功对类中的成员进行初始化赋值,值得注意的是,在main方法中用 "." 来访问类中的属性与方法。
一个类不仅仅可以创建一个实例,也可以创建多个实例,比如一个狗类可以创建多个对象。
public static void main2(String[] args) {
//实例化对象
Dog dog = new Dog();
dog.name = "小黄";
dog.age = 3;
dog.sort = "中华田园犬";
dog.color = "黄色";
System.out.println(dog.name+" "+dog.age+" "+dog.sort+" "+dog.color);
dog.bark();
dog.wag();
//同一个类可以创建多个实例化对象
Dog dog2 = new Dog();
dog2.name = "小黑";
dog2.age = 4;
dog2.sort = "中华田园犬";
dog2.color = "黑色";
System.out.println(dog2.name+" "+dog2.age+" "+dog2.sort+" "+dog2.color);
}
三、This引用
什么是this引用?
this引用是指向当前对象,在成员方法中所有成员变量的操作,都是通过该引用去访问的
class Day{
public int day;
public int month;
public int year;
public Day(int month, int day, int year) {
//this必须是构造语句中的第一条语句
this.month = month;
this.day = day;
this.year = year;
}
public class test{
public static void main(String[] args) {
Day day = new Day(4,12,2024);
day.Print();
}
那什么是当前对象呢,怎么判断当前对象呢?
我们可以认为哪个对象的引用调用了该方法,this就代表那个对象,换一句话来说,谁调用了,谁就是this,虽然this可以省略,我们建议习惯加上this
this引用的注意事项:
1、this只能在成员方法中使用
2、this引用当前对象,不能引用其他对象
this的三种用法:
1、访问当前对象的成员方法
2、访问当前对象非静态的成员方法
3、访问当前对象的其他构造方法
四、对象的构造及初始化
1、构造方法(有参与无参)
概念:特殊的成员方法,名字必须与类名相同,在创建对象时,由编译器自动调用,在整个生命周期中只调用一次。
在初始化成员变量时,可以创建一个构造方法来为成员初始化
//构建日期类
class Day{
public int day;
public int month;
public int year;
public Day(int month, int day, int year) {
//this必须是构造语句中的第一条语句
this.month = month;
this.day = day;
this.year = year;
}
//有参 构造方法名与类名相同
//没有返回值 设置void也不行
/* public Day(int day,int month,int year){
this.day = day;
this.month = month;
this.year = year;
}*/
//有参和无参构成方法重载
//无参
public Day(){
this.year = 2024;
this.month = 5;
this.day = 11;
}
public void Print(){
System.out.println(year+" "+month+" "+day);
}
}
//构造方法
public class test{
public static void main(String[] args) {
// Day day = new Day(4,12,2024);有参
Day day = new Day();
day.Print();
}
2、idea开发环境中的快捷构造方法
当我们面对要求定义一个成员变量比较多的类时,去手动一个构造方法,这相对来说会比较麻烦,降低我们的开发效率,因此,对于idea的开发环境中,是有快捷方法来为我们直接形成构造方法的
右击鼠标右键,根据指示,到到第三步,按住Ctrl,点击想要初始化的变量,编译器就会自动生成相应的构造方法
构造方法的特性
1、名字必须与类名相同
2、没有返回值类型,设置void也不行
3、创建对象时由编译器自动调用,并且在对象的生命周期内只调用一次
4、构造方法可以重载
作者声明:
此文章是本人在Java学习中知识的总结以及作为复习材料,感谢各位观看与支持!