在Java 语言中,除8 个基本数据类型值之外, 一切都是对象,而对象就是面向对象程序设计的中心。

对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。

对象具有状态, 一个对象用数据值来描述它的状态。Java 通过为对象定义成员变量来描述对象的状态。

对象还有操作,这些操作可以改变对象的状态,对象的操作也被称为对象的行为, Java 通过为对象定义方法来描述对象的行为。

对象实现了数据和操作的结合,对象把数据和对数据的操作封装成一个有机的整体,因此面向对象提供了更大的编程粒度,对程序员来说,更易于掌握和使用。

对象是Java 程序的核心,所以Java 里的对象具有唯一性,每个对象都有一个标识来引用它,如果某个对象失去了标识,这个对象将变成垃圾,只能等着系统垃圾回收机制来回收它。

Java 语言不允许直接访问对象,而是通过对对象的引用来操作对象。

具有相同或相似性质的一组对象的抽象就是类,类是对一类事物的描述,是抽象的、概念上的定义:对象是实际存在的该类事物的个体,因而也称为实例( instance ) 。

对象的抽象化是类,类的具体化就是对象,也可以说类的实例是对象。

类用来描述一系列对象,类概述每个对象应包括的数据,类概述每个对象的行为特征。

因此,可以把类理解成某种概念、定义,它规定了某类对象所共同具有的数据和行为特征。

Java 语言使用class 关键宇定义类,定义类时可使用成员变量来描述该类对象的数据,可使用方法来描述该类对象的行为特征。

在客观世界中有若干类,这些类之间有一定的结构关系。通常有如下两种主要的结构关系。

一般→特殊关系: 这种关系就是典型的继承关系, Java 语言使用extends 关键字来表示这种继承关系, Java 的子类是一种特殊的父类。因此,这种一般→特殊的关系其实是一种" i s a" 关系。授面向对象时经常提的一个概念一一一般→ 特殊的关系也可代表大类和小类的关系。比如水果→ 苹果,就是典型的一般→ 特殊的关系,苹果is a 水果,水果的范围是不是比苹果的范围大呢?所以可以认为: 父类也可被称为大类,子类也可被称为小类。

整体→ 部分结构关系: 也被称为组装结构,这是典型的组合关系, Java 语言通过在一个类里保存另一个对象的引用来实现这种组合关系。因此,这种整体→ 部分结构关系其实是一种" has a"关系。

开发者定义了Java 类之后,就可以使用new 关键字来创建指定类的对象了,每个类可以创建任意多个对象,多个对象的成员变量值可以不同一一这表现为不同对象的数据存在差异。

Java 是面向对象的程序设计语言, Java 语言提供了定义类、成员变量、方法等最基本的功能。

类可被认为是一种自定义的数据类型,可以使用类来定义变量,所有使用类定义的变量都是引用变量,它们将会引用到类的对象。

类用于描述客观世界里某一类对象的共同特征,而对象则是类的具体存在, Java程序使用类的构造器来创建该类的对象。

Java 也支持面向对象的三大特征:封装、继承和多态, Java 提供了private 、protected 和public 三个访问控制修饰符来实现良好的封装,提供了extends 关键字来让子类继承父类,子类继承父类就可以继承到父类的成员变量和方法,如果访问控制允许,子类实例可以直接调用父类里定义的方法。

继承是实现类复用的重要手段,除此之外,也可通过组合关系来实现这种复用,从某种程度上来看,继承和组合具有相同的功能。

使用继承关系来实现复用时,子类对象可以直接赋给父类变量,这个变量具有多态性,编程更加灵活;

而利用组合关系来实现复用时,则不具备这种灵活性。

构造器用于对类实例进行初始化操作,构造器支持重载,如果多个重载的构造器里包含了相同的初始化代码,则可以把这些初始化代码放置在普通初始化块里完成,初始化块总在构造器执行之前被调用。

除此之外, Java 还提供了一种静态初始化块,静态初始化块用于初始化类,在类初始化阶段被执行。如果继承树里的某一个类需要被初始化时,系统将会同时初始化该类的所有父类。(????)

标签:关系,初始化,java,对象,子类,笔记,Java,父类

来源: https://www.cnblogs.com/wyprog/p/12627982.html

java类描述_java笔记2:Java语言中的类和对象的描述相关推荐

  1. java继承总结_JAVA笔记:Java中的继承总结

    继承:在Java中使用extends关键字来实现类的继承  ,extends意思就是派生,所以子类也叫派生类,继承的主要目的是扩展类的内容 操作格式: class A{}; class B exten ...

  2. Java快速入门学习笔记7 | Java语言中的类与对象

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  3. Java快速入门学习笔记9 | Java语言中的方法

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  4. Java快速入门学习笔记8 | Java语言中的数组

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  5. Java快速入门学习笔记3 | Java语言中的表达式与操作符

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  6. Java快速入门学习笔记2 | Java语言中的基本类型

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  7. 【牛客网java练习错题笔记】 --Java基础打卡day002

    [牛客网java练习错题笔记] --Java基础打卡day002 1 根据以下代码段,正确的是 2 在Java中,在同一包内,类Cat里面有个公共方法sleep(),该方法有static修饰,所以可以 ...

  8. Java快速入门学习笔记4 | Java语言中的if条件语句

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  9. Java快速入门学习笔记6 | Java语言中的for循环语句

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

  10. Java快速入门学习笔记5 | Java语言中的while循环语句

    有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...

最新文章

  1. IE9会颠覆传统的上网模式?
  2. python api开发用什么框架_python+requests接口自动化框架
  3. 51单片机中的定时器
  4. Linux parted分区工具使用示例
  5. Verizon的SDN策略:不鸣则已,一鸣惊人?
  6. Azure 5月新发布:CDN图片处理功能, CDN Restful API, 新版CDN管理门户, 计量名称变更延期
  7. 第三周PLECS仿真实验
  8. c语言如何在坐标输出,tc 如何在指定坐标处 输出bmp图片??
  9. L1-044 稳赢 (15 分)—团体程序设计天梯赛
  10. 因 URL 意外地以“/HelloWorld”结束,请求格式无法识别。
  11. 金融计算器--麦考利久期(Macaulay_Duration)
  12. 商品详情页html手机,商品详情页.html
  13. 非此即彼的逻辑错误_Argument常见逻辑错误及描述 【出国英语】
  14. socketTCP协程文件+信息传递 - TCP聊天文件服务器v1.9 - 划时代的版本更新(4.6万字)
  15. 手机+卫星,到底有多难?
  16. docker实现quagga_docker中安装quagga详细介绍
  17. API接口管理平台解决方案
  18. jsp页面div浮动在img上面
  19. Android Interview
  20. 终极解码和暴风影音中ACM Wrapper: OUTPUT问题不能正常播放的解决办法!

热门文章

  1. 关于C# Winform DataGridView 设置DefaultCellStyle无效的原因与解决方案
  2. JavaWeb学习总结(三十五)——使用JDBC处理Oracle大数据
  3. 在sql server2000的查询分析器里查询oracle的数据
  4. 如果Laravel 报错 file_put_contents(): failed to open stream
  5. Nginx反向代理,负载均衡,redis session共享,keepalived高可用
  6. 20 年,缔造了 Google 互联网王国!
  7. 全面剖析支付宝服务窗功能二次开发
  8. jQuery按键事件keyup
  9. rar for android最新版,RAR for Android手机版下载-RAR for Android 安卓压缩软件v5.30 安卓版下载-腾牛安卓网...
  10. 为什么说_br__标签需要闭合