面向对象

什么是面向对象

抽象理解为将一类共有属性(方法)提取出来的一个集合

 非静态方法调用

public的非静态方法,要new一个对象,

静态方法static是与类仪器加载,时间早于其他方法

 

 类与对象的关系

类是一种抽象的数据类型,并不代表某一具体事物,对象是抽象概念的具体实例,所以用选用某个类型,然后new一个对象 Student student = new Student(); 

 创建与初始化对象

 1 package duixiang;
 2 //学生类
 3 public class Student {
 4     //属性:字段
 5     String name;
 6     int age;
 7     //方法,this代表当前类
 8     public void study(){
 9         System.out.println(this.name+"学生在学习");
10     }
12 }

 

package duixiang;
//一个项目应该只存在一个main方法
public class Application {
    public static void main(String[] args) {
        //类是抽象的需要实例
        //xiaoming是Student类的实例
        Student xiaoming  = new Student();
        xiaoming.age=3;
        System.out.println(xiaoming.age);
    }
}

 有参无参构造器

public class Person {
    //一个类即使什么都不写,也会存在一个构造器方法
    /**
     * public Person(){}
     * 没有返回值(没有void),名字与类相同
     * 无参构造器,会初始化一些初始值
     *
     */
    String name;
    //使用new的时候,本质是在调用构造器
    public Person(){
        this.name="李华";
    }
    //一旦定义了有参构造,必须显式定义无参构造
    public Person(String name){
    }
}public class Person {
    //一个类即使什么都不写,也会存在一个构造器方法
    /**
     * public Person(){}
     * 没有返回值(没有void),名字与类相同
     * 无参构造器,会初始化一些初始值
     *
     */
    String name;
    //使用new的时候,本质是在调用构造器
    public Person(){
        this.name="李华";
    }
    //一旦定义了有参构造,必须显式定义无参构造
    public Person(String name){
    }
}

 

构造器特点:

1.和类名相同。

2.没有返回值。

3.new本质是调用构造器

4.初始化一些值

注意点:定义了有参构造器必须把无参构造器写出来

Alt+Insert生成构造器

封装

属性私有 get/set

 继承

 super

属性

 方法 不写默认是本类与this一样,super代指父类

 私有的无法被继承

 重写

静态方法演示(不是重写)

父类的引用指向了子类

 非静态方法演示

注意输出区别,方法重写

 注意点:需要有继承关系,子类重写父类的方法。方法名必须相同,参数列表也相同,修饰符范围可以扩大,不能缩小。抛出的异常可以被缩小,不能被扩大。(方法必须一致,方法体不同 override)

多态

 能执行哪些方法取决于左边

 

向上转型,低转高自动可以转,向下转型高转低需要强转(可能会失去一些方法)

抽象类

 接口

 接口定义方法,implements实现方法

 重写接口

 

 

 

posted on 2023-07-18 16:13  W未央W  阅读(21)  评论(0)    收藏  举报