博主之前有对类和对象进行过一次总结,感兴趣的可以看java的类和对象-CSDN博客。
Generate快捷键和构造方法
1.构造方法
1.1构造方法的概念和用处
狗类相当与对狗的name,age等进行分开的赋值,而people;类运用构造方法people,进行对对象的统一的赋值,从而节省篇幅,提高效率。(构造方法的名字必须与类名相同)。
1.2构造方法的赋值
当没有对对象赋值时,编译器会默认给定赋值,前提是没有构造方法。若该类前面写了构造方法,
编译器则会认为有了赋值的地方,不会给默认赋值。
此时未对people3的age进行赋值,但是仍旧打印出了0.
默认值列表
1.3含有多个构造方法的情况
此时写出了两个构造方法,一个含参数,一个不含参数。
构造方法在一个类中可以有多个,编译器会选择其中合适的来用,如date对象没有进行赋值,则会使用第一张图的构造方法,应用第一个构造方法的()中无参数,date2同理,会使用第二个构造方法。但没有写构造方法时,编译器会自动给一个不带参数的构造方法。但如果写了构造方法,编译器则不会给。如写了一个带参数的构造方法,但在对date对象赋值时没有写参数,就会报错,因为写了构造方法,编译器已经没有提供那个不带参数的构造方法。
在一个构造方法中可以引用另一个构造方法,如图,在Date()中引用Date(含参数)。
意思就是Date()中执行this(2008,8,8)就会跳到Date(含参数)所以结果是先显示“执行了带有三个参数的构造方法”后显示“执行了不带参数的构造方法”但二者之间不能形成环。
2.Generate快捷键
Alt+insert为generate的快捷键,可快速将目标类的构造方法写出。
3.Generate中的getter和setter
generate中的getter和setter分别是写出当前类的相关项。Setter可认为是对构造方法统一赋值的拆解,而getter则是有返回值的赋值,可直接写在System.out.println中如System.out.println(people2.getAge())。该前提是先前已经对people2的age赋过值或构造方法中是编译器默认的,没有参数,否则报错。
this关键字
this除了能在构造方法中用,还可以在成员方法中引用其他的成员方法。
static关键字
在多个对象含有相同值时,需要重负写相同值,会降低效率。这时就可以static修饰。
被static修饰后,赋值之后该变量属于每个对象,即属于类但通过对象可以引用,不会报错,只警告。
这里定义了people1和peop2两个对象(age已经被static修饰)。虽然这里只对peop2进行赋值了11,但结果是people1和people2都打印出了11.原因是age被static修饰之后,age这个项就属于类了,可以认为这里虽然只对类下面的一个对象进行赋值,但改变的这个类。people1和people2都在people下,所以打印的都是11.
在静态方法中不能使用非静态的成员。因为静态是属于类的,不需要对象。
代码块
代码块{}中的一些代码,在不同的代码块同时存在时,静态代码块总是先被执行,而且在执行实例代码块和静态代码块时,会先将代码块中需要打印的字符打印出,再打印数值。
toString方法
Alt+insert中的toString可快速遍历对象的所以数据,在sout中输入对象名就可以打印出对象的信息。
此处再谈类和对象到此结束。感谢观看,希望能给各位带来一些有用的东西。如果觉得博主写的还可以,不妨点个免费的赞!!