面向对象

-------- 现实生活中的 ------------
对象:
生活中:能够用语言描述出来事物。
程序中: 分配在堆上面的一块内存区域。

类: 具有明确的定义的相同特征和行为,功能事物集合
电风扇类: 相同特征,功能
-------- 程序中--------------------
类:把一类生活中具体的事物相同特征,功能/行为抽象为属性和方法过程
语法:
注意: Java中的一个类表示生活中的一类对象
class 类名称 {
  // 类的成员
  // 属性-> 特征的抽象
  // 方法-> 功能/行为的抽象
}
// 手机类:
特征: 颜色,品牌,尺寸。
功能: 打电话,发短信,聊微信。
class Phone {
  // 特征->属性(成员变量)
  String color; // 颜色
  String kind; // 品牌
  double size; // 尺寸
  // 方法->功能抽象
  void call() {}
  void sendMs() {}
  void chat() {}
}

对象: 分配在堆上面的一块内存区域。
// 生产手机
Phone phone = new Phone();
phone.color = "金黄色";
phone.kind = "苹果黑";
phone.size = 15.5
// 调用提供方法,发送消息。
phone.call();
phone.chat();
phone.sendMs();

类和对象的关系:
  类是对象的模板
  对象是类的实例

------ 面向对象的特征 --------------
访问修饰符:
        private default protected public
同一个类      √      √     √     √
同一个包      ×      √     √     √
不同包是子类    ×      ×       √      √
不同包非子类    ×      ×       ×     √

封装:隐藏对象功能实现的细节。
  1、将类中属性私有化
  2、提供需要给外部类操作的setter或者getter方法
  3、提供外部成员调用方法使用public修饰
继承:子类继承父类中的成员变量。
  在子类中使用extends关键字就可以继承父类中所有成员变量
  注意: Java中继承只支持单根继承方式
  A extends B,C 多继承(错误)
  A extends B, A extends C (多重继承)

多态
抽象
接口

 

package com.oop.demo;

public class Phone {
    private String color;
    private String kind;
    private double size;
    
    public Phone() {
        System.out.println("无参构造函数");
    }
    
    public Phone(int i) {
        System.out.println("有参构造函数");
    }
    
    
    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getKind() {
        return kind;
    }

    public void setKind(String kind) {
        this.kind = kind;
    }

    public double getSize() {
        return size;
    }

    public void setSize(double size) {
        this.size = Math.abs(size);
    }

    void call() {
        System.out.println("打电话");
    }
    
    void sendMsg() {
        System.out.println("发短信");
    }
    
    void chat() {
        System.out.println("聊微信");
    }
    
    public static void main(String[] args) {
        Phone phone = new Phone();
        phone.color = "金黄色";
        phone.kind = "苹果黑";
        phone.size = 15.5;
        
        phone.setSize(-15.5);
        
        phone.call();
        phone.sendMsg();
        phone.chat();
        System.out.println(phone.size);
    }
}

 

posted @ 2018-10-19 15:47  ^sun^  阅读(134)  评论(0编辑  收藏  举报