JSJ—类与对象
当你在设计类时,要记得对象时靠类的模型塑造出来的,你可以这样看:
——对象是已知事物
——对象会执行的动作
对象本身已知的事物称为实例变量,它们代表对象的状态(数据),且该类型的每一个对象都会独立的拥有一份该类型的值。
所以你也可以把对象当作为实例。
对象可以执行的动作称为方法。在设计类时,你也会设计出操作对象数据的方法。对象带有读取或操作实例变量的方法是很常见的情形,举例来说,闹钟对象会有个变量来保存响铃时间,且会有getTime()与setTime()这两个方法来存取该时间。
因此说对象带有实例变量和方法,但它们都是类设计中的一部分。
类与对象两者之间有什么不同呢?
类不是对象(却是用来创建它们的模型),类是对象的蓝图,它会告诉虚拟机如何创建某种类型的对象。根据某类创建出的对象都会有自己的实例变量。
也可以这么说,对象就好像通讯簿中的一笔数据。
通讯簿的每张卡片都有相同的空白字段(实例变量)。填入新的联系人就如同创建新的实例(对象),填入卡片的数据代表联络人的状态。
这个卡片类上的方法就是你会对卡片作的事情:getTel(),changeAddress(),deleteCard()等。
所以每张卡能够执行相同的动作,但取出的结果应该是依每张卡片各自独立的。
要作出哪些东西才会运用对象呢?你需要两个类,一个是要被操作于对象的类,另一个是用来测试该类的类。测试用的类带有main()并且你会在其中建立与存取被测的对象。
待在main()中对于一个测试用的程序来说是还好的,但对于货真价实的面向对象应用程序来说,你会需要用对象来与对象交互。
main()的两种用途:
——测试真正的类
——启动你的Java应用程序
真正的Java程序只会让对象与对象交互,此处所说的交互是指相互调用方法。
Java的自动回收
创建对象时,它会被存放在成为堆的内存区域汇总,不管对象如何创建都会放在此区域中。此区域并非普通的堆;它是可回收垃圾的堆(Garbage-CollectibleHeap)。Java会根据对象的大小来分配内存空间。比如说15个实例变量的对象所占用的空间就可能会比只有两个实例变量的对象要大。但对象使用完毕时内存要如何回收呢?Java会主动帮你管理内存!当某个对象呗Java虚拟机察觉不再会被使用到,该对象就会被标记成可回收的。如果内存开始不足,垃圾收集器就会启动来清理垃圾、回收空间,让空间能够再次被利用。
面向对象设计扩展功能不需要改动之前已经测试好的程序代码。
所有的Java程序都定义在类中。
类如同蓝图描述该类型的对象要如何创建。
对象自治,你无需在意它如何完成任务。
对象有已知的事物,并能执行工作。
对象本身已知道的事物成为实例变量,它代表对象的状态。
对象可执行的动作称为方法,它代表对象的行为。
创建类时,可能同时会需要创建独立、测试用的类。
类可以继承自较为抽象的父类。
Java的程序在执行期是一组会互相交谈的对象。

JSJ—类与对象的更多相关文章
- Java编程里的类和对象
像我们搞计算机这块的,都知道这么一件事,当前的计算机编程语言主要分为两大块,一为面向过程,二为面向对象.Java就是一门纯面向对象的语言.学习了一个月左右的Java,在下对于Java当中的类和对象有了 ...
- Python - 类与对象的方法
类与对象的方法
- C++基础知识(5)---类和对象
终于把C++中的基础在前面的几篇博客中总结完了,可能还有一些语法还没有总结到,没关系,以后用到了再查资料就好.类是C++中的一个非常重要的概念,这是区别你使用的C++到底是面向过程还是面向对象的一个重 ...
- 简述JavaScript对象、数组对象与类数组对象
问题引出 在上图给出的文档中,用JavaScript获取那个a标签,要用什么办法呢?相信第一反应一定是使用document.getElementsByTagName('a')[0]来获取.同样的,在使 ...
- 前端学PHP之面向对象系列第一篇——类和对象
× 目录 [1]类 [2]成员属性[3]成员方法[4]对象[5]成员访问[6]this 前面的话 面向对象程序设计(OOP)是一种计算机编程架构.计算机程序由单个能够起到子程序作用的单元或对象组成,为 ...
- Objective-C Runtime 运行时之一:类与对象
Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理.这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一 ...
- [Java入门笔记] 面向对象编程基础(一):类和对象
什么是面向对象编程? 我们先来看看几个概念: 面向过程程序设计 面向过程,是根据事情发展的步骤,按进行的顺序过程划分,面向过程其实是最为实际的一种思考方式,可以说面向过程是一种基础的方法,它考虑的是实 ...
- 解析Java类和对象的初始化过程
类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来 ...
- 02OC的类和对象
这章重点介绍OC的类以及对象,由于C语言是面向过程语言,而OC只是对于C语言多了一些面向对象的特性,所以OC相对于其他面向对象语言,例如C#.Java等没有那么多的语法特性,所以差别还是比较大的. 一 ...
随机推荐
- FPGA跨时钟域握手信号的结构
FPGA跨时钟数据传输,是我们经常遇到的问题的,下面给出一种跨时钟握手操作的电路结构.先上图 先对与其他人的结构,这个结构最大的特点是使用 req 从低到高或者高到低的变化 来表示DIN数据有效并开始 ...
- 我所理解Java集合框架的部分的使用(Collection和Map)
所谓集合,就是和数组类似——一组数据.java中提供了一些处理集合数据的类和接口,以供我们使用. 由于数组的长度固定,处理不定数量的数据比较麻烦,于是就有了集合. 以下是java集合框架(短虚线表示接 ...
- 关于浏览器跨域的一种实现--jsonp
最近一直在搞python,前端技术荒废很久了,今天跟前端联调,设计到一个前端跨域的问题:前端人员告诉我可以用jsonp的方式实现,经他这么一提醒,也是豁然开朗. jsonp的实现方式我按照我的理解说一 ...
- Spring5中的DispatcherServlet初始化
Spring MVC像许多其它Web框架,被设计围绕前端控制器(DispatcherServlet)实际的工作是由可配置的,委托组件执行提供了一种用于请求处理的共享算法.这个模型是灵活的,支持不同的工 ...
- 了不起的WebRTC:生态日趋完善,或将实时音视频技术白菜化
本文原文由声网WebRTC技术专家毛玉杰分享. 1.前言 有人说 2017 年是 WebRTC 的转折之年,2018 年将是 WebRTC 的爆发之年,这并非没有根据.就在去年(2017年),WebR ...
- webpack严格模式!!!忽略
1. babel5 babel: { options: { blacklist: ["useStrict"], // ... }, // ... } 2. babel6 修改.ba ...
- 控制页面打印的2种方法(css3的media媒体查询和window.print())
在实际开发中,有时可能会有打印的需求.下面我总结了2种打印的方法,希望对各位小伙伴有所帮助. ①:直接用window.print()方法就可以打印整个页面,下面是一个小demo <!DOCTYP ...
- 【Windows】Git自动拉取
原文:https://blog.csdn.net/qq_38375394/article/details/80093003 bat脚本.windows的schtasks,也就是类似于linux的cro ...
- x-pack-5.6.10激活教程
x-pack-5.6.10激活教程 简介 X-Pack 已经作为 Elastic 公司单独的产品线,前身是 Shield, Watcher, Marvel, Graph, 和 reporting,先来 ...
- Selenuim自动化测试模型
本章内容: 概念介绍 自动化测试模型 一.概念 自动化测试库.框架.工具之间的区别: 库是由代码集合成的一个产品,供程序员调用,面向对象的代码组织形成的库叫类库,面向过程的代码组织形成的库叫函数库. ...