Java基础day05-面向对象
面向对象编程的本质就是:以类的方式组织代码,以对象的方式组织(封装)数据
复习
静态方法和非静态方法
静态方法+static可以用类名直接调用
非静态方法五static需要创建该类的对象,再用对象调用方法
静态方法调用非静态会出错
public class demo {
public static void test(){//静态方法是和类一起加载的
demo();//会出错,因为一个存在的东西去调用不存在的东西
}
public void demo(){//类实例化后才会存在的,即创建对象后才可以
}
}
构造器
一个类即使什么都不写也会有一个构造器
类中的构造器也称为构造方法,是在进行创建对象的时候必须调用的,并且构造器有以下两个特点:
-
必须和类的名字相同
-
必须没有返回类型,也不能写void
三大特性
封装
属性私有,get/set
package com.object;
//封装的核心就是私有 private
public class Student {
private String name;
private int age;
//get set 提供一些可以调用内部变量的方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {//私有属性可以通过方法进行纠错
if (age > 100 || age < 0) {
this.age = 3;
} else {
this.age = age;
}
}
}
继承
extands拓展的含义,java中只有单继承没有多继承
子类(派生类)父类(基类)
子类继承了父类后拥有父类所有的方法,父类私有的(private)无法继承
!!ctrl+h!!能打开继承树,查看基类和派生类
在Java中都默认继承object类,我称它为------“女娲类”,
super
重写
多态
同一种方法可以根据发送对象的不同采用多种不同的行为方式
一个对象的实际类型是确定的,但可以指向对象的引用类型有很多
多态存在的条件
-
有继承关系
-
子类重写父类的方法
-
父类引用指向子类对象
PS:多态是方法的多态,属性没有多态性
instanceof可以判断两个类有没有父子关系(我称之为亲子鉴定法)