第四章 类与对象
1、概念
-
类(构造对象的模板)
由类构造对象的过程叫做实例(instance)
类之间的主要关系有依赖、继承、聚合(关联)
-
封装(encapsulation)
将数据和行为装进一个“包”中。
-
对象
三个主要特性
- 行为:可以完成的任务
- 状态:施加操作后返回的结果
- 标识:区分对象
对象中的数据叫做实例域,
操作类的过程叫做方法,
2、预定义类
-
构造器、对象和对象变量
构造器名字应该与类名相同。
用new+类构造器及构建了一个对象。
new Date();
对象变量:
Data birthday = new Date();
可以直接定义一个对象变量。
Data birthday ;// birthday不是一个对象,不能引用方法。 birthday = new Data();
-
更改器方法和访问器方法
对象进行访问器方法,访问器方法会产生一个新的对象(如String对象的一些更改字符串的方法)。
对象进行更改器方法,则原对象本身就会被更改。
import java.time.*;
/**
@version 2020-9-16
@author Tominochick
*/
public class CalendarTest{
public static void main(String[] args) {
LocalDate date = LocalDate.now();
int month = date.getMonthValue();
int today = date.getDayOfMonth();
date = date.minusDays(today - 1);
DayOfWeek weekday = date.getDayOfWeek();
int value = weekday.getValue();
System.out.println("周一 周二 周三 周四 周五 周六 周日");
for (int i = 1; i < value; i++)
System.out.print(" ");
while (date.getMonthValue() == month){
System.out.printf("%3d", date.getDayOfMonth());
if (date.getDayOfMonth() == today){
System.out.print("*");
}
else {
System.out.print(" ");
}
date = date.plusDays(1);
if (date.getDayOfWeek().getValue() == 1)
System.out.println();
}
if (date.getDayOfWeek().getValue() != 1)
System.out.println();
}
}
3、自定义类
格式
class Classname()
{
实例域;
field1
...
constructer
构造器;
...
method
方法;
...
}
4、静态域与静态方法
static 修饰符
- 静态域
类中的某个实例域如果被static修饰,则每一个类中只有一个唯一的域。
如果一个类有100个对象,这100对象可以有100个实例域,但只有一个静态域,不属于任一对象,只属于类本身。
所有对象共享,也都能进行更改。
- 静态方法
与静态域相似,属于类,而不是属于具体对象。
第五章 继承
extends 单继承 A只能继承一个B
implements 多继承 A 能继承 B、C等多个类
class 子类 extends 父类{}
class A implements B, C{}
super 使用父类的方法
this 使用自己的方法
final 使用final修饰类,这类不会被继承,成为“最终类”