文章目录
Java三大特性
一、封装
- 该露的露,该藏的藏
程序设计要追求“高内聚、低耦合”。高内聚:类的内部操作细节由自己完成,不允许外部干涉;低耦合:仅暴漏少量的方法给外部使用。 - 封装(数据的隐藏)
通常,应禁止直接访问一个对象中数据的实际表示,而通过操作接口来访问,这称为信息隐藏。 - 记住这句话:属性私有,get/set
-
1.代码实现
//类 private 私有
/*
封装的意义:
1.提高程序的安全性,保护数据
2.隐藏代码实现细节
3.统一接口
4.提高系统的可维护性
*/
public class Student {
//属性私有
private String name; //名字
private int id;//学号
private char sex; //性别
private int age;
//提供一些可以操作这个属性的方法
//提供一些public的set/get方法
//get获得这个数据
public String getName(){
return this.name;
}
//set给这数据设置值
public void setName(String name){
this.name=name;
}
public int getAge(){
return this.age;
}
public void setAge(int age){
if(age>120||age<0){
this.age=3;
}
else{
this.age=age;
}
}
}
测试类
public class Application {
public static void main(String[] args) {
Student s1 = new Student();
s1.setName("秦疆");
s1.getName();
System.out.println(s1.getName());
s1.setAge(-1);
s1.getAge();
System.out.println(s1.getAge())
}
}
1.提高程序的安全性,保护数据
2.隐藏代码实现细节
3.统一接口
4.提高系统的可维护性
二、继承
1.定义
继承是一种用已有的类创建新类的机制(提高代码的复用性,减少代码冗余,增强类的功能拓展)
父类(具有共有属性)
子类(具有特殊属性)
2.语法
class 子类名 extends 父类名{
…
}
3.注意点
- 子类可以继承父类的属性和行为,但是子类不继承父类的构造器
- Java是单继承模式:一个类只能继承一个直接父类
- Java不支持多继承,但是支持多层继承
- Java中所有的类都是Object类的子类
4.关于继承两个有争议的知识点
a.子类是否可以继承父类的私有成员?
- 我认为可以继承私有成员的,只是不能直接访问而已
b.子类是否可以继承父类的静态成员?
- 有争议的知识点
- 子类可以直接使用父类的静态成员
- 但个人认为:子类不能继承父类的静态成员(共享并非继承)
public class Test {
public static void main(String[] args) {
//目标,理解继承的特点:
//1.子类不能继承父类的构造器
//2.子类是否可以继承父类的私有成员?我认为可以继承私有成员的,只是不能直接访问而已
Tiger t=new Tiger();
// t.eat();
//3.子类是否可以继承父类的静态成员,我认为不算继承,算共享
System.out.println(Tiger.Location);
}
}
class Animal{
private void eat(){
System.out.println("动物吃东西");
}
public static String Location="揽山公园";
}
class Tiger extends Animal{
}
5.子类对象的构造过程
a.先走父(为空),在走子(构造方法)————若子类没有固定的构造方法,则默认调用父类的无参构造方法
案例:
动物类
public class Animal {
String name;
int age;
Animal(){
System.out.println("这是一只可爱的动物");
}
void eat(){
System.out.println("动物吃东西");
}
}
老虎类
public class Tiger extends Animal{
Tiger(){
System.out.println("老虎真可爱");
}
void catchAnimal(){
System.out.println("老虎抓动物");
}
}
测试类
public class Test1 {
public static void main(String[] args) {
Tiger tiger1=new Tiger();
tiger1.eat();
tiger1.catchAnimal();
}
}
运行结果
这是一只可爱的动物
老虎真可爱
动物吃东西
老虎抓动物
升级版
案例:
动物类
public class