美文网首页
第十章抽象和封装

第十章抽象和封装

作者: Dream_wdl | 来源:发表于2018-05-29 15:47 被阅读0次
    抽出现实类分三步

    1.找出它的种类
    2.找出它的属性
    3.找出它的行为

    用面向对象来描述世界

    1.发现类

    class  Dog{
              // 根据"对象 "  抽象出 "类"
    }
    

    2.发现类的属性
    狗类共有的特征
    1.品种
    2.年龄
    3.名字
    4.健康
    5.亲密度

    例:class Dog { 
        String name = "旺财";         // 昵称
        int health = 100;             // 健康值    
        int love = 0;                 // 亲密度
        String strain = "拉布拉多犬"; // 品种 
    }
    

    3.发现类的方法
    狗的行为
    1.跑
    2.吠
    3.输出信息

    例:class Dog { 
        String name = "旺财";   // 昵称
        int health = 100; // 健康值    
        int love = 0;     // 亲密度
        String strain = "拉布拉多犬"; // 品种 
        /* 输出狗的信息 */
        public void print() {
            // 输出狗信息的代码
        } 
    }
    
    类图描述
    image.png
    对象初始化
    例:Penguin pgn = new Penguin();
    pgn.name = "qq";
    pgn.sex = "Q仔"; 
    
    构造方法

    1.无返回值
    2.跟类名一样的方法名
    3.如果不写则默认空的构造方法(如果写了有参的只能调用有参的)
    4.构造方法不是初始化对象


    image.png
    无参构造方法
    例:public  penguin(){
          //可在方法中赋值
    }
    
    自定义构造方法
    public Penguin () {
            name = "qq";
            love = 20;
            sex = "Q仔";
    }
    
    public Penguin (String name,int health,int love,String sex ) {
            this.name = name;
            this.health = health;
            this.love = love;
            this.sex = sex;
    }
    

    系统不再提供默认的无参构造方法
    this 是指属性中定义的类 this.name=name

    方法重载
    image.png
    static静态成员

    特点及定义
    -静态随着类的加载而加载,类的消失而消失,生命周期长
    -静态是先存在,对象是后存在
    -被所有实例对象所共享
    -加上static的对象就属于类中的说有对象
    -成员变量前加上static就共享;
    -定义静态的对象就是共享一份 数据
    -静态变量可用类型去调用
    -定义static的方法 只能打出静态方法
    -静态方法只能访问静态属性,不能访问实例属性
    -静态方法不能放在方法里要放在类里


    image.png

    封装(保护)

    概念

    封装:将信息保存在类的内部,不允许直接访问,通过类提供的方法来实现对隐藏信息的操作和访问

    好处

    1.隐藏类的实现细节
    2.只能通过规定的方法访问数据
    3.方便加入控制语句
    4.方便修改实现

    步骤
    image.png

    Alt+Insert 快捷键

    this

    用类名定义一个变量(对象,实例)的时候,定义的只是一个引用,外面可以通过这个引用来访问这个类里面的属性和方法

    this.name=name
    
    public class ThisDemo {  
        String name;
        int age;
        public ThisDemo (){ 
            this.age=21;
       }     
        public ThisDemo(String name){
            this();
            this.name="Mick";
        }     
      private void print(){
             System.out.println("最终名字="+this.name);
             System.out.println("最终的年龄="+this.age);
        }
        public static void main(String[] args) {
           ThisDemo tt=new ThisDemo("zhangsan"); //随便传进去的参数
           tt.print();
        }
    }
    

    相关文章

      网友评论

          本文标题:第十章抽象和封装

          本文链接:https://www.haomeiwen.com/subject/jaqajftx.html