类和对象是面向对象程序设计方法中最核心概念
类:是对一类事物的描述,是抽象的定义,类中定义的是属性(成员变量)和方法(成员方法)。
对象:是实际存在的属该类事物的具体个体,因而也称为称为实例。
⏩⏩区别:类是对象的模板,对象是类的实例。
类只有通过对象才可以使用,对象是可以直接使用的。⏪⏪
在java中定义类时需要用到class关键字。语法如下:
class ClassName{
属性;
行为;
}
️️范例:定义一个Cylinder类
class Cylinder{
public double r;//成员前写法先统一为public
public double pi = 3.14;
public int h;
public void area(){//此处写的方法不带static关键字
System.out.println("圆柱的底面积 = "+pi*r*r);
}
public void volume(){
System.out.println("圆柱的体积 = "+pi*r*r*h);
}
}
☄️☄️注:当成员变量没有初始化的时候,默认值就是对应的初始值。
接着由于类属于引用数据类型,所以对象的产生的格式如下:
类名称 对象名称 = new 类名称();
当一个实例化对象产生之后,可以按以下的方法进行操作:
对象.属性:表示调用类之中的属性;
对向.方法():表示调用类之中的方法。
✏️✏️范例:使用对象操作类:
class Cylinder{
public double r;//成员前写法先统一为public
public double pi = 3.14;
public int h;
public void area(){//此处写的方法不带 static关键字
System.out.println("圆柱的底面积 = "+pi*r*r);
}
public void volume(){
System.out.println("圆柱的体积 = "+pi*r*r*h);
}
}
public class Test {
public static void main(String[] args) {
Cylinder cyl = new Cylinder();
cyl.r = 1;
cyl.h = 1;
cyl.area();
cyl.volume();
}
}
运行结果:
圆柱的底面积 = 3.14
圆柱的体积 = 3.14
以上完成一个类和对象的操作关系。
⏭️⏭️先看一个例子
class Day{
public int year;
public int month;
public int day;
public void setDay(int y,int m,int d) {
year = y;
month = m;
day = d;
}
public void printDay(){
System.out.println(year+"/"+month+"/"+day);
}
}
public class Test1{
public static void main(String[] args) {
Day day = new Day();
day.setDay(2022,8,15);
day.printDay();
}
}
如果把中间的setDay换成下面的,会发生什么❓❓❓
public void setDay(int year,int month,int day) {
year = year;
month = month;
day = day;
}
注:只是形参自己给自己赋值,没赋值给成员变量。
✔️✔️接下来引入this,如下:
public void setDay(int year,int month,int day) {
this.year = year;
this.month = month;
this.day = day;
}
结果如下:2022/8/15
通过this关键字可以明确的访问一个类的成员变量,解决成员变量与局部变量名称冲突问题,this.year, this.month,this.day访问成员变量。
this的特性:
this的三中用法:
this.成员变量;
this.成员方法;
this();方问构造方法。(后续会讲)