Java基础笔记(十三)——面向对象

类和对象

类是具有相同属性和方法的一组对象的集合,好比一个虚拟的轮廓(抽象的概念),确定对象将会拥有的特征(属性)和行为(方法)。

对象是类的实例表现,是一个具体的东西(一个看得到、摸得着的具体实体)。

类是对象的类型,对象是特定类型的数据。

先定义类,再实例化对象。

属性和方法

属性:对象具有的各种静态特征。——对象有什么。

方法:对象具有的各种动态行为。——对象能做什么。

创建类

 

/**
 * 宠物猫类
 * @author tendo
 */
public class Cat {
    //成员属性:昵称、年龄、体重、品种
    String name;  //昵称
    int month;  //年龄
    double weight;  //体重
    String species;  //品种

    //成员方法:跑动、吃东西
    public void run(){
        System.out.println("小猫快跑");
    }
    public void eat(){
        System.out.println("小猫吃鱼");
    }
    public void run(String name){
        System.out.println(name+"快跑");
    }
}

 

实例化对象

 

public class CatTest {
    public static void main(String[] args){
        //对象实例化
        Cat one=new Cat();
        one.name="小哈";
        one.month=2;
        one.weight=100;
        one.species="英国短毛猫";
        System.out.println("昵称:"+one.name);
        System.out.println("年龄:"+one.month);
        System.out.println("体重:"+one.weight);
        System.out.println("品种:"+one.species);
        one.eat();
        one.run();
        one.run(one.name);
    }
}

//运行结果
昵称:小哈
年龄:2
体重:100.0
品种:英国短毛猫
小猫吃鱼
小猫快跑
小哈快跑

成员属性,系统默认提供初始值。String类型——null      int——0      double——0.0

局部变量必须初始化赋值。

单一职责原则

如果一个类中功能越多,交融的耦合性越高,被复用的可能性越低。一个类(或者大到模块,小到方法都是同理)承担的职责过多,就相当于将这些职责耦合在一起,当其中一个职责变化时,可能会影响其它职责的运作。所以,要将不同的功能封装在不同的类中,如果多个功能总是同时发生改变,则可将它们封装在同一类中。

如:T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。也就是说职责P1和P2被耦合在了一起。

解决办法:遵守单一职责原则,将不同的职责封装到不同的类或模块中。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;同理,当修改T2时,也不会使职责P1发生故障风险。

一个发生变化不会影响其它。

 

posted @ 2019-03-08 20:25  tendo  阅读(112)  评论(0编辑  收藏  举报