zoukankan      html  css  js  c++  java
  • 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发生故障风险。

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

  • 相关阅读:
    A Color Game
    《算法分析》作业1
    The 2018 ACM-ICPC CCPC NING XIA G-Factories
    2017北京ICPC Pangu and Stones(区间DP)
    Comet OJ
    2019牛客多校训练营第四场补题
    2019牛客多校训练营第五场补题
    2017CCPC哈尔滨 B:K-th Number(二分+尺取)
    启发式分治入门 Non-boring sequences UVA
    2019牛客多校训练营第三场补题
  • 原文地址:https://www.cnblogs.com/tendo/p/10498034.html
Copyright © 2011-2022 走看看