如何创建类
⚠Java当中一切皆对象
⚠如何描述对象?用类。
我们可以类当成一个模板,用来描述对象特征,行为等等
//自定义的类型 -> 你定义的一个 Java当中 没有的类型
class PetDog {public String name;//名字public String color;//颜色// 狗的属性public void barks() {System.out.println(name + ": 旺旺旺~~~");}// 狗的行为public void wag() {System.out.println(name + ": 摇尾巴~~~");}
}
如何修改文件内类的名称
因为这样不方便更改类的名称
类的实例化
定义了一个类,就相当于在计算机中定义了一种新的类型 ,与 int , double 类似,只不过 int 和 double 是 java 语言自 带的内置类型,而类是用户自定义了一个新的类型,比如上述的:PetDog 类。它是类 ( 一种新定义的类型) 有了这些自定义的类型之后,就可以使用这些类来定义实例 ( 或者称为对象 ) 。
用类类型创建对象的过程,称为类的实例化 ,在 java 中采用 new 关键字,配合类名来实例化对象。
实例化出来的东西就是一个真正的实体
public static void main(String[] args) {//通过new 关键字 可以实例化 多个对象//任何变量在使用的时候是已经被赋值的//.用来访问对象的属性或者方法PetDog petDog1 = new PetDog();petDog1.name = "feifei";petDog1.color = "红色";System.out.println(petDog1.name);System.out.println(petDog1.color);petDog1.barks();petDog1.wag();System.out.println("=============");PetDog petDog2 = new PetDog();petDog2.name = "花花";petDog2.color = "灰色";petDog2.barks();petDog2.wag();System.out.println(petDog2.name);System.out.println(petDog2.color);}
new petdog1和2相当于开辟两块内存
this关键字
作用一
public class Date {public int year;public int month;public int day;public void setDate(int y, int m, int d){year = y;month = m;day = d;}public static void main(String[] args) {Date date = new Date();date.setDate(1999,1,1);}
}
但是如果再创建一个新的日期,同样调用这个方法,那么问题来了,你怎么知道是给哪个对象调用的方法呢?
Date date2 = new Date();
date2.setDate(1989,11,11);
其实系统是知道的
这里的this用来判断是哪个date来调用这个方法
这里的year,month,day其实是
this.year = y; this.month = m; this.day = d;
作用二
设计另一个setDate和print方法
public void setDate(int year, int month, int day){year = year;month = month;day = day;}public void print(){System.out.println("year: " + year + "month: " + month + "day: " + day);}
在调用这些方法的时候发现打印结果全都是0???
在setDate方法里面,形参和成员变量相同,由于局部变量优先原则,形参给形参自己赋值了,相当于什么都没赋,打印出来的就是int形式的null也就是0
修改setDate方法,在每个形参前面加一个this指向当前对象。
所以当我们的形参变量和成员变量一样的时候,要在形参前面加一个this
所以尽量使用this,一定错不了