目录
一、封装
1.1封装概念
1.2封装步骤
1.3类成员访问修饰符和作用域
1.4封装应用
二、继承
1.1继承的概念与作用
1.2继承语法结构
三、static 关键字
3.1 static相关概念
3.2 static作用
四、super关键字
4.1super的作用
4.2super作用域
4.3super使用
五、包
5.1包的作用
5.2包命名规范
5.3如何导入包
一、封装
1.1封装概念
将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问把尽可能多的东西藏起来,对外提供便捷的接口。
1.2封装步骤
1)修改属性可见性,设为private私有化
2)创建公有的getter/setter方法
3)在getter/setter方法中加入属性控制语句
1.3类成员访问修饰符和作用域
修饰符 同一个类中 同一个包中 子类中 任何地方 不同包非子类 同包子类 不同包子类
private 可以 不可以 不可以 不可以 不可以 不可以 不可以
默认修饰符 可以 可以 不可以 不可以 不可以 可以 不可以
protected 可以 可以 可以 不可以 不可以 可以 可以
public 可以 可以 可以 可以 可以 可以 可以
1.4封装应用
可以通过setter方法对属性进行控制,使其数据变得合理化
该应用中对动物亲密度和健康值进行封装,并控制其数据合理化,然后进行输出。
public class Penguin {
private String name;
private int health;
private int love;
public Penguin() {
}
public Penguin(String name, int health, int love) {
this.name = name;
this.health = health;
this.love = love;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getHealth() {
return health;
}
public void setHealth(int health) {
if(health<0 || health>100){
System.out.println("健康值不合法!默认赋值为60");
this.health = 60;
return;
}
this.health = health;
}
public int getLove() {
return love;
}
public void setLove(int love) {
if(love<0 || love>100){
System.out.println("亲密度不合法!默认赋值为60");
this.love = 60;
return;
}
this.love = love;
}
public void print(){
System.out.println("宠物信息:名字:"+this.name+",健康状态:"+this.health+",亲密度:"+this.love);
}
}
二、继承
1.1继承的概念与作用
概念:多个类中相同的属性和方法抽取出来放入一个新的类中(父类),多个类中就不需要再重复定义这些属性和方法,只需要写自己类中独有的属性和方法,使用extends继承父类。
继承是Java中实现代码重用的重要手段之一。Java中只支持单根继承,即一个类只能有一个直接父类。
作用:继承可以使得子类具有父类除构造方法以外的其它方法,使代码得到复用。
1.2继承语法结构
父类
[访问修饰符] class Pet {
//公共的属性和方法
}
子类
[访问修饰符] class Dog extends Pet {
//子类特有的属性和方法
}
另外:所有类都有一个共同的父类:Object类。
三、static 关键字
3.1 static相关概念
1)static为”静态“
2)所有static关键字修饰的都是类相关的,类级别的
3)所有static修饰的,都是采用”类名.“的方式访问
4)static修饰的变量是静态变量
5)static修饰的方法是静态方法
3.2 static作用
使用static可以定义静态代码块
静态代码块在main方法执行前执行,并且遵守自上而下的顺序
类加载时执行,只执行一次
类加载时记录日志
四、super关键字
4.1super的作用
super()只能出现在构造方法第一行,通过当前的构造方法去调用"父类"中的构造方法,
目的是:创建子类对象的时候,先初始化父类型特征。
4.2super作用域
super能出现在实例方法和构造方法中-super的语法是:"super ."、"super ()
"super不能使用在静态方法中。
super.大部分情况下是可以省略的。但在父和子中有同名的属性,或者说有相同的方法,
如果此时想在子类中访问父中的数据,必须使用"super.”加以区分.
4.3super使用
super.属性名 【访问父类的属性】
super.方法名(实参)【访问父类的方法】
super(实参)【调用父类的构造方法】
注意:当一个构造方法第一行既没有this,有没有super时,系统会自动加一个super()。
五、包
5.1包的作用
1)允许类组成较小的单元(类似 文件夹),易于找到和使用相 应的文件
2)防止命名冲突 区分名字相同的类
3)有助于实施访问权限控制
5.2包命名规范
1)包名由小写字母组成,不能以圆点开头或结尾
2)包名之前最好加上唯一的前缀,通常使用组织倒置的网络域名
3)包名后续部分依不同机构内部的规范不同而不同
5.3如何导入包
使用import 包名. 类名;语句即可导入包
注意:一个类同时引用了两个来自不同包的同名类,每个包都是独立的,顶层包不会包含子包的类,package和import的顺序是固定的。



