1,面向对象内容回顾
1, 类:
----> 为描述生活中的一类事物,
公共的属性 —>成员属性
公共的功能 —>成员函数
构造函数 --作用--> 为了实例化类的对象
1,函数名称必须和类型一模一样,没有返回值类型
2,无参数构造函数,有参构造函数
3, 就是为了创建 类的对象
对象:
----》类 抽象
----》对象 具体
类 ----》对象 实例化
new
面向对象思想:
1,你用生活中的例子来解释下 面向对象思想
1,随口即来
2,封装思想
1,我们把属性用private修饰起来
2,get/set 方法 对外提供访问的接口
3,面向对象中的关键字
private 私有的 -->只能在本类中访问(出了这个类就访问不到这个属性 成员函数)
public 公有的 -->在任何类中都能访问的到
private 关键字使用的意义
保护成员属性不能被外部直接访问,提高安全性
this --> 当前对象的引用
定义一个动物:
#属性(private)
year
weight
leg
constructor
无参
有参
get/set
#功能
吃 喝 睡 叫
定义一个 Dog
#属性(private)
year
weight
leg
constructor
无参
有参
get/set
#功能
吃 喝 睡 叫
面向对象3大特征(封装 继承 ,多态)
相似的关系
类和类之间继承的关系 : extends
子类 继承了 父类的所有(除了构造器)以外的
成员属性以及成员方法和 其访问修饰符无关系
继承的优点:
子类继承父类的所有功能
提高代码的复用型:
子类在调用父类的构造函数时:
super()语句必须放在构造函数的第一行
方法的覆盖:
1,2个类之间必须有继承关系:
2,方法的声明必须一模一样,方法的实现必须不一样
访问修饰符 返回值类型 方法名字 () {}
3,子类的方法权限 >= 父类方法的权限
访问修饰符:
1,private 最小
2, default 包级访问
3, protected 子类访问
4, public 最大
import java.util.Scanner(public x)
import java.lang.interger()
方法的重载 overload:
方法名字 必须一模一样
参数列表 必须不一样
和返回值类型没有关系
void a (){}
int a(int x){}
方法的覆盖(重写,复写) override:
1,必须是子类和父类之间的关系
2,方法的声明必须一模一样,
方法的实现必须不一样
子类方法的权限 >=父类方法的权限
demo
class Animal{
#属性
private int age;
private double weight;
private int leg;
Animal(){}
Animal(int age,double weight,leg){
this.age=age;
this.weight=weight;
this.leg=leg;
}
int getAge(){
return this.age;
}
void setAge(int age){
this.age=age;
}
doulbe getWeight(){
return this.weight;
}
void setWeight(double weight){
this.weight=weight;
}
int getLeg(){
return this.leg;
}
void setLeg(int leg){
this.leg=leg;
}
void eat(){
System.out.println("eat");
}
void sleep(){
System.out.println("sleep");
}
void shut(){
System.out.println("shut");
}
}
class Demo{
public static void main(String[] args){
Animal a = new Animal(10,56.5,4);
a.shut();
a.log=44;
}
}