Java中的类

  1.类的概念

  2.类中的封装

  3.对象的三大特征

  4.对象状态

  5.类与类之间的关系

------------------------------------------------------------

  1.类(class)是构造对象的模板或蓝图。由类构造(construct)对象的过程称为创建类的实例(instance)。
  个人理解:
    Java中存着很多很多的类:
      有些是Java标准类库中提供的类
      有些是用户自己编写的类
      有些是第三方提供的类
      ....
    总之有很多的类,我们可以用这些类来创建各种不同的实例,这些实例之间相互关联,这样就构成了JAVA世界。

    也可以这样理解:Java世界中存在着各种各样的类,我们程序员可以利用这些各种各样的类来创建各种各样的实例,让这些实例相互关联 就形成了一个丰富的Java世界。
    所以,作为程序员的我们需要实现某个系统时,就是去Java世界中寻找符合我们系统功能的类,然后创建这些类对应的实例,如果没有现成的类来使用的话,就需要我们自己去编写类了。
  2.封装(encapsulation) 是对象中一个重要的概念,封装是将数据和行为组合在一起,并对对象的使用者隐藏了数据的实现方式。

  对象中的数据称为实例域(instance field),操作数据的过程称为方法(method)。
  可以这样理解封装:比如现实生活中的汽车,我们驾驶员在驾驶汽车时需要操作的有:方向盘、油门、变速器、离合等等,如果把汽车也看做是 实例的话,那么"汽车实例"就将汽车的基本信息进行了封装,只是对驾驶员提供了操作它的方法。
  3.对象的三个特征:
    1. 对象的行为(behavior) ---> 可以对对象施加哪些操作?
    2. 对象的状态(state) ---> 当施加那些操作时,对象如何响应?
    3. 对象的标识(identity) ---> 如何辨别具有相同行为与状态的不同对象?
  4.对象的状态: 一个类可以创建出N个对象来,每个对象都保存着描述当前特征的消息。对象的状态可能会随着时间而发生改变,但这种改变不会是自发的,对象状态的改变需要通过调用方法实现。(如果不经过调用方法就可以改变对象的状态,只能说明封装性遭到了破坏。)
  5.类与类之间的关系:
    在类之间,最常见的关系有:
      依赖("uses-a")
      聚合("has-a")
      继承("is-a")
    "依赖"(dependence),即"uses-a"关系,是一种最明显的、最常见的关系,如果一个类的方法操作另一个类的对象,我们就说一个类依赖于另一个类。(应该尽最可能地将相互依赖的类减少至最少,这样使类之间的耦合度最小)
    "聚合"(aggregation),即"has-a"关系,一个对象包含另外一些对象的关系。
    "继承(inheritance)",即"is-a"关系,一个类从另外一个类继承而来的关系。

基础知识(05) -- Java中的类的更多相关文章

  1. Java基础知识(JAVA中String、StringBuffer、StringBuilder类的区别)

    java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题.现在总结一下,看看他们的不同与相同. 1.可变与不可 ...

  2. 【JAVA零基础入门系列】Day11 Java中的类和对象

    今天要说的是Java中两个非常重要的概念--类和对象. 什么是类,什么又是对象呢?类是对特定集合的概括描述,比如,人,这个类,外观特征上,有名字,有年龄,能说话,能吃饭等等,这是我们作为人类的相同特征 ...

  3. 053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结

    053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结 本文知识点: 流程控制知识总结 流程控制知识总结 选择结构语句 循环结构语句 ...

  4. 细说java中的类

    前言 最近在学习<java编程思想> 学到了内部类 类不就是class吗 天天用 还能讲出花来了不成... 其实不然,在java中,类的种类和使用方式多种多样,花样繁多.其中主要有 普通类 ...

  5. 051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试——debug入门1

    051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试--debug入门1 本文知识点: 程序调试--debug入门1 程序 ...

  6. 048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例——阶乘的累加和

    048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例--阶乘的累加和 本文知识点:通过案例练习嵌套循环应用 案例练习--阶乘的累加和 案例题目 ...

  7. Java开发知识之Java中的Map结构

    Java开发知识之Java中的Map结构 一丶Map接口 Map没有实现Collection接口,提供的是Key 到Value的映射. Map中.不能包含相同的Key,每个Key只能映射一个Value ...

  8. Java开发知识之Java中的集合Set接口以及子类应用

    ---恢复内容开始--- Java开发知识之Java中的集合Set接口以及子类应用 一丶Set接口以及作用 在上一讲.我们熟悉了接口的实现图.以及自己各有的子类. List接口主要存储的数据是可以重复 ...

  9. Java开发知识之Java中的集合上List接口以及子类讲解.

    Java开发知识之Java中的集合类 一丶什么是集合类 如果你学习说数据结构,那么学习集合就很简单. 因为集合就是存储数据的结构. 例如 有链表结构 (list ) 还有 map结构.等等. 集合类就 ...

随机推荐

  1. 总结Cnblogs支持的常用Markdown语法

    一.什么是Markdown Markdown是一种可以使用普通文本编辑器编写的标记语言, Markdown的语法简洁明了.学习容易,而且功能比纯文本更强,因此有很多人用它写博客.世界上最流行的博客平台 ...

  2. Keepalived+LVS+nginx双机热备

    Keepalived简介 什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了, 也就是所谓的高可用或热备,用来防止单点故障的发生. Keepalived采 ...

  3. linux基本知识2

    date:时间管理 linux时钟: 硬件时钟:hwclock -s:硬件时钟到系统时钟   -w:系统时钟到硬件时钟 系统时钟:date 如何查看是外部命令还是内部命令: type COMMAND ...

  4. Windows批处理:请求远程协助

    公司办公场地分别在两个不同的楼层,处理问题要来回跑,所以思考使用远程访问的方式解决问题.同事大多对电脑不熟悉,使用「通讯软件」和「电话」教同事开启远程桌面沟通成本挺高,另外公司IP地址.账号密码都没统 ...

  5. [转]OAuth 2.0 - Authorization Code授权方式详解

    本文转自:http://www.cnblogs.com/highend/archive/2012/07/06/oautn2_authorization_code.html I:OAuth 2.0 开发 ...

  6. Jmeter实现登录bugfree、新建bug、解决bug脚本(抓包工具实现)

    环境 Chrome jmeter3.1 fiddler4 win7 32位 Linux CentOs6.4 bugfree3.0.1 链接:http://pan.baidu.com/s/1gfHpbp ...

  7. [bzoj3224][tyvj1728][普通平衡树] (pb_ds库自带红黑树)

    Description 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 1. 插入x数 2. 删除x数(若有多个相同的数,因只删除一个) 3. 查询x数的排名(若有多个相 ...

  8. Jquery揭秘系列:实现$.fn.extend 和$.extend函数

    前面我们扩展了bind方法和ready函数,这次我要讲一下$.fn.extend 和$.extend函数. 其他的不多说,直接切入主题吧! 先来看看这两个函数的区别: $.fn.extend是为查询的 ...

  9. Sqlite3常用的插入方法及性能测试

    最近做到的项目涉及一个大数据量缓存重传,其中要用到的sqlite技术,把自己的学习心得整理了一下. SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中. ...

  10. 腾讯 auth_token

    auth_token 从cookies里取出supertoken=2881515311; function auth_token(str) { var hash = 0; for (var i = 0 ...