ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

《Java 核心技术 卷1》 笔记 第四章:类与对象

2022-01-14 21:33:50  阅读:169  来源: 互联网

标签:冰箱 Java 核心技术 笔记 对象 大象 第四章


4.1 概述

面向过程:着重完成整个过程的具体步骤。

面向对象:着重谁要做什么,然后再按具体的类与对象,逐步细化。

示例:把大象塞进冰箱分几步?

面向过程:

1. 把冰箱门打开

2. 把大象塞进去

3. 把冰箱门关上

面向对象:

1. 建立三个主体,我,冰箱,大象

2. 我操作冰箱,过程是把冰箱打开

3. 我操作大象,运输大象并把它塞入冰箱

4. 我操作冰箱,过程是把冰箱关上

特点:少量步骤,面向过程更简洁,面向对象更明确主体责任,适合于操作繁杂,处理事务多的交互系统。

4.1.1 类

就是根据需要,对事务进行类别的划分。比如车可以分为:火车、汽车。火车对应于可以大量远距离运送资源和载人,汽车更适用于少量人短途运送。两者的运力和速度根据类别的不同有所区别。

实例化:类创造对象的过程。比如人是类,人当中的你我就是具体的对象。母亲生娃过程就是实例化。

封装:把数据和行为放入同一个类挡住,并对外界做出适当隐藏,阻止外界对对象进行不合法的操作。类似保管你家里钥匙的人,只有特定的几个。其他人不能直接进入你家中,只有通过有钥匙的主人(你的家人等)间接拜访。

继承:保留父类的行为,同时进行扩展。更类似于继承父辈财产,再创造新的财富的过程。

4.1.2 对象

三个主要特性(不会考,其他书中没有这个概念)

行为:能进行什么操作,用什么方法

状态:当前对象的形态特点,无法作为唯一标识,但可以作为筛选对象的方式

ID:两个状态完全相同的对象,不能称之为同一个对象。比如有两个人,他们长得非常像,但是不能称之为一个人,因为他们的身份证号不一样。

4.1.3 识别类

1. 什么东西可以作为类?

在需求中的名次,可以作为类。比如上面的“把大象塞进冰箱”,它其实主语是人,“人把大象塞进冰箱”,人、大象、冰箱,就可以作为类。

2. 哪些可以作为行为?

主动操作者作为类,主动的操作动词可以放入类当中。如“塞”。就可以放如人对应的类中,作为其中的一种操作。

3. 哪些可以作为状态?

操作的限定条件。特定情况可以进行特定操作,比如“人把大象塞进冰箱”中的冰箱。关闭状态下的冰箱,只支持开启,开启状态的冰箱,能塞东西和关闭。这个状态就冰箱门的开启、关闭状态。

4.1.4 类的关系

依赖:操作的主体,有关系,但是不强烈。比如“人把大象塞进冰箱”,是人这个类进行操作,操作大象和冰箱。但是大象和冰箱两个主体要由人来操控。

聚合:不同的东西合起来构成。比如一个班级有黑板,有粉笔,有讲台,有老师,有学生。

继承:近似于扩展。比如图形有面积,有周长。圆是一种图形,在图形的基础上,扩展了半径的概念。

4.2 使用现有的类

比如前面的字符串,StringBuilder 类,就是一种具体的类型。

4.2.1 对象与对象变量

格式:

type varriableName = new type();

例如:

StringBuilder sb = new StringBuilder();

所有对象都拥有一个特殊的值:null,代表没有任何指代,没有找到的意思。没有实例化的对象,也可以优先赋值为null,例如:

public class Main {
    public static  void main(String[] args){
        StringBuilder sb = null;
        Random r=  new Random();
        int x = r.nextInt();
        if(x%2==0){
            sb = new StringBuilder("even");
        }else{
            sb = new StringBuilder("odd");
        }
        System.out.println(sb.toString());
    }
}

对象和对象变量区别:对象可以只定义对象名,而不进行初始化,这种情况只能称之为对象变量,而不能称之为对象。对象变量可以初始化对象,也可以使用一个对象变量为对象变量进行赋值操作。对象变量只是引用对象,而非实际包含对象。

实际上,对象变量相当于绑气球的线。同一根线只能绑一个气球,同一个气球却可以使用多跟线去捆绑。

null值对象不能调用其方法:

public class Main {
    public static void main(String[] args){
        String s = null;
        System.out.println(s.length());
    }
}

 

 系列内容

《Java 核心技术 卷1》 笔记:第一章 Java程序设计概述

《Java 核心技术 卷1》 笔记:第二章 Java程序设计环境

《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(1)

《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(2)

《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(3)

《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(4)

《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(5)

《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(6)

《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(7)大数处理、数组、多维数组、控制台传参

喜欢的话,点个赞吧~!平时做题,以及笔记内容将更新到公众号。

关注公众号,互相学习:钰娘娘知识汇总

标签:冰箱,Java,核心技术,笔记,对象,大象,第四章
来源: https://blog.csdn.net/yu_duan_hun/article/details/122495009

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有