对象和类—Java世界的细胞
对象和类—Java世界的细胞
今天向大家介绍我自己关于Java中对象和类的一些体会,中有不足还请大家多多指教
1.面向对象程序设计
为什么会产生面向对象
我认为人们在最初探索计算机世界时,常常会从计算机出发的角度去思考问题,因而就像解应用题时的倒推法,根据问题思考求解的过程,这就是面向过程的程序设计。而随着技术需求的发展,人们需要更为直接的,从人的角度去思考问题的程序语言,因而诞生了面向对象的程序设计,它像一种正推解法,将数据放在第一位,然后才是算法,即“程序=数据结构+算法”
什么是面向对象
面向对象的程序设计从组织架构上像在模拟客观世界,其中存在许多对象,对象各自有自己独有的属性和方法,各个对象不断地相互作用,相互联系中运行着
对象的独立属性和方法被封装在其内部,不由外人随意干涉踏足,同时重视对象模块间的接口联系,以及对象与外部环境间的联系
2.类和对象
new关键字的使用
当使用new关键字创建一个对象时,实际上同时也创建了这个对象的引用,只是该引用不可见,或者说匿名而已,如果我们只用一次该对象,那么这就够了,但如果我们计划使用多次,则需要创建一个引用变量,然后将刚才的不可见引用变量赋给它,这样第二次使用改对象时就可以通过你刚才创建的有名字的变量进行访问了,像下面这样
new Student(); //仅计划使用一次该对象时只new即可 Student s;
s=new Student(); //先创建引用变量s,再创建一个对象,并将该对象的不可见引用赋给s Student s=new Student(); //通常我们将两步一气呵成
成员变量的初始值
通常当我们创建一个对象时,如果这个对象有许多成员变量,那么系统会给这些成员变量赋初始值,但虽然你并不需要给他们赋初值,但这是提倡的,我们应该一开始创建他们时就为其赋初值,来提高代码的可读性,同时避免我们因为混淆了成员变量与局部变量(系统不会为局部变量赋初值,故我们创建它后在使用它前必须为它初始化)
对象的比较
对象的比较分为两种,一是”是不是为同一个的比较“,二是“是不是为同一种的比较”,前者用一般用引用变量的==进行比较,因为引用变量里存放的是对象的地址,当两家地址一模一样,说明两家为一家
3.方法
对象的方法实际上规定了对象的行为,对象的能力,表明对象可以做的事情以及接受外界什么样的刺激(信号)会做出的反应
返回类型
- 返回类型可以是对象类型(包括null),也可以是基本数据类型
- 当返回类型为对象类型时,返回值为对象引用变量的值
- 返回类型支持自动转换,大致规则为”要大给小“,”要小给大“则不行,具体见java自动转换机制
变长参数
有时我们需要接受的参数序列长度是不固定的,例如需要排队,但你并不知道有几个捣蛋的小孩没有来,参数序列不像以前是固定的,此时如果用数组替代,那么在排队之前我们还需要将来了的小孩们都输入数组,显然也很麻烦。为了解决这种问题,java中引入了变长参数
- 变长参数的语法为<数据类型... 数据组的名字> 形式上类似数组,只是在原先的数据类型后加上了...,其实实际用法也基本同数组了,它也可以使用下标访问数据组的元素
- 变长参数使用的规则如下:
- 一个方法最多只要一个变长参数
- 如果有多个参数,变长参数必须在参数序列的最后
4.引用问题
- 当试图调用不存在的方法或成员变量时,编译会报错
- 当试图调用引用变量为null(即空引用)时,编译不会报错,但在运行时会报错
对象和类—Java世界的细胞的更多相关文章
- java基础(二) -对象和类
Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为.例如,一条狗是一 ...
- Java 2-Java 对象和类
Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 消息解析 本节我们重点研究对象和类的概念. 对象:对象是类的一个实例,有状态和行为. ...
- Java入门之:对象和类
Java对象和类 Java作为一种面向对象语言,支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 本节我们重点研究对象和类的概念: 对象: 对象是类的一个实例,有状态和行为.例如 ...
- Java-Runoob:Java 对象和类
ylbtech-Java-Runoob:Java 对象和类 1.返回顶部 1. Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 ...
- (五)Java 对象和类
Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 消息解析 本节我们重点研究对象和类的概念. 对象:对象是类的一个实例,有状态和行为. ...
- Java 教程 (Java 对象和类)
Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 本节我们重点研究对象和类的概念. 对象:对象是类的一个实例(对象不是找个女朋友 ...
- JavaSE基础(十二)--Java 对象和类
Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 本节我们重点研究对象和类的概念. 对象:对象是类的一个实例(对象不是找个女朋友 ...
- 20180705-Java对象和类
Java对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态继承封装抽象类对象实例方法消息解析 本节我们重点研究对象和类的概念. 对象:对象是类的一个实例,有状态和行为.例如,一条狗是一个 ...
- Java入门 - 语言基础 - 04.对象和类
原文地址:http://www.work100.net/training/java-object-class.html 更多教程:光束云 - 免费课程 对象和类 序号 文内章节 视频 1 概述 2 J ...
- 四、java基础-面向过程_对象_类中可出现的因素
1.面向过程和面向对象区别: 1)面向过程:开发一个应用程序.一个项目,必须先了解整个过程,了解各个步骤.模块间的因果关系,使的面向过程方式去开发程序时,代码和代码之间的关联程度是非常强.所以其中任何 ...
随机推荐
- 不可错过的效能利器「GitHub 热点速览 v.22.39」
如果你是一名前端工程师且维护着多个网站,不妨试试本周榜上有名的 HTML-first 的 Qwik,提升网站访问速度只用一招.除了提升网站加载速度的 Qwik,本周周榜上榜的 Whisper 也是一个 ...
- Java程序设计(三)作业
题目1:用户输入学号,如果是以ccutsoft开头,并且后边是4位数字,前两位大于06小于等于当前年份.判断用户输入是否合法.ccutsoft_0801. 1 //题目1:用户输入学号,如果是以abc ...
- python2与python区别汇总
目录 输入与输出 range使用区别 字符编码区别 输入与输出 python2与python3中两个关键字的区别 python2中 input方法需要用户自己提前指定数据类型 写什么类型就是什么类型 ...
- 3.MongoDB系列之查询
1. find简介 // 查询所有文档 db.users.find({}) // 查询指定条件文档 db.users.find({'name': 'shenjian'}) // 查询指定字段,1查询键 ...
- Dest0g3迎新赛misc部分解析
目录 1. Pngenius 2. EasyEncode 3. 你知道js吗 4. StrangeTraffic 5. EasyWord 6.4096 7.python_jail 8. codeg ...
- 后端框架的学习----mybatis框架(6、日志)
六.日志 如果一个数据库操作,出现了异常,我们需要排错,日志就是最好的帮手 setting设置 <settings> <setting name="logImpl" ...
- IDEA中设置背景图片(超详细)
文章目录 1.效果图 2.详细设置过程 1.效果图 2.详细设置过程
- win10设置或更改硬盘图标
1.首先要找到".ico"的图标素材,存放在要更改图标的硬盘根目录,可命名为a.ico.图片素材大家可以去一些素材网找找,一般可以找到很多. 2.在该硬盘分区空白处鼠标右键新建一个 ...
- NLP之基于词嵌入(WordVec)的嵌入矩阵生成并可视化
词嵌入 @ 目录 词嵌入 1.理论 1.1 为什么使用词嵌入? 1.2 词嵌入的类比推理 1.3 学习词嵌入 1.4 Word2Vec & Skip-Gram(跳字模型) 1.5 分级& ...
- Oracle数据泵导入dmp文件,报UDI-00013、UDI-00019错误原因
这个问题挺简单,想了想,还是记录下吧. [root@ufdb165 bin]# ./impdp cwy_init0914/cwy_123456789@ufgovdb1 directory=DATA_P ...