zoukankan      html  css  js  c++  java
  • 面向对象

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

    类: 具有明确的定义的相同特征和行为,功能事物集合
    电风扇类: 相同特征,功能
    -------- 程序中--------------------
    类:把一类生活中具体的事物相同特征,功能/行为抽象为属性和方法过程
    语法:
    注意: 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);
        }
    }
  • 相关阅读:
    python数据分析——numpy数组学习(2)
    python数据分析——numpy数组学习(2)
    python数据分析——numpy数组学习
    python数据分析——numpy数组及其运算
    python基础学习——列表与列表表达式
    python基础学习——列表与列表表达式
    各国国土面积、军队数量、GDP总计数据分析
    爬取起点月票榜
    《战争艺术概论》词云
    影评网站-团队博客目录
  • 原文地址:https://www.cnblogs.com/sunBinary/p/9816869.html
Copyright © 2011-2022 走看看