面向对象

面向对象

1.初识面向对象

**面向对象的本质就是:以类的方式组织代码,以对象的方式(封装)数据 **

2.方法回顾和加深

静态方法不能调用非静态方法

静态方法是和类一同加载的

java 是值传递,不是引用传递

// 值传递
		public static void main(String[] args) {

        int i = 1;
        System.out.println(i);

        change(i);

        System.out.println(i);
    }

    public static void change(int i) {
        i = 10;
    }

3.对象的创建分析

4.面向对象三大特性

4.1封装 : 把代码封装在一起,然后对外提供一个小口

高内聚,低耦合。该露的露,该藏的藏
记住这句话就够了:属性私有,get / set
封装一般是针对属性的,对方法的封装比较少

4.1.1 private 关键字

public class Person {

    private String name;  // 私有属性
    String address;  // 公开属性
}
    public static void main(String[] args) {

        Person person = new Person();

        person.address = "";  // 没有报错

        person.name    // 报错了

    }

要想改变对象的属性,需要构建 set / get 方法

为什么要通过 get / set 方法对属性进行更改,而不是直接更改呢?

是因为在设计之初,设置 get / set 是为了可以对属性进行修改时进行校验

public class Person {

    private int age;

    public int getAge() {
        return age;
    }

    // 对设置属性进行校验
    public void setAge(int age) {
        if (age > 120 || age < 0) {
            System.out.println("年龄输入不合法");
        } else {
            this.age = age;
        }
    }
}

4.2继承: 继承爸爸的所有方法

private:

4.2.1 继承只能继承父类的 public 的属性和方法, priviate 的属性和方法是不可以被继承的;但是可以通过 getter/ setter 方法对父类属性进行操作(封装的特点)

protected:

![image-20210725133239834](/Users/bummb/Library/Application Support/typora-user-images/image-20210725133239834.png)

4.3 this 、super 存在的目的是为了解决 继承、作用域中 变量名一样所造成的混乱

Person 类

![image-20210725140014785](/Users/bummb/Library/Application Support/typora-user-images/image-20210725140014785.png)

4.3多态: 对爸爸的方法进行改造

5.抽象类和接口

6.内部类及 OOP

posted @ 2021-07-25 18:11  梁子琦  阅读(43)  评论(0)    收藏  举报