对象和类—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)面向过程:开发一个应用程序.一个项目,必须先了解整个过程,了解各个步骤.模块间的因果关系,使的面向过程方式去开发程序时,代码和代码之间的关联程度是非常强.所以其中任何 ...
随机推荐
- 在客户端电脑使用 kubectl 远程管理 Kubernetes
日常工作中,可能需要在自己的笔记本电脑上执行 kubectl 命令以管理远程 Linux 服务器上的 Kubernetes 集群.通过调用 kubernetes API 来实现对 Kubernetes ...
- a += 20 和 a = a+20前者不报错,后者报错的原因
我们在使用a += 20 和 a = a+20两种不同方式的赋值运算是发现尽然前者不报错,后者报错 代码示例: shot s = 5; s += 5; s = s+5; 很明显我们可以看出s = s+ ...
- 两道超有意思的 CSS 面试题,试试你的基础
今天在论坛,有看到这样一道非常有意思的题目,简单的代码如下: <div> <p id="a">First Paragraph</p> </ ...
- switch分支
说明: 当表达式的值等于case中的常量,则会执行其中包含的语句块 break用于跳出循环,如果不写,则直接执行下一个常量的语句块,不再去判断表达式的值是否等于下一个case的常量(case穿透) 最 ...
- count(*), count(1), count(列名)的区别
1.从结果上来看 count(1)和count(*)之间没有区别,因为count(*)count(1)都不会去过滤空值,但count(列名)就有区别了,因为count(列名)会去过滤空值. 2.从执行 ...
- 两将军问题和TCP三次握手
两将军问题,又被称为两将军悖论.两军问题, 是一个经典的计算机思想实验. 首先, 为避免混淆,我们需要认识到两将军问题虽然与拜占庭将军问题相关,但两者不是一个东西.拜占庭将军问题是一个更通用的两将军问 ...
- 关于click和onclick的区别
click()和onclick()的区别: 1.onclick是绑定事件,告诉浏览器在鼠标点击时候要做什么 click本身是方法作用是触发onclick事件,只要执行了元素的click()方法,就会触 ...
- Shading-JDBC、ShadingSphere、ShardingProxy 使用详解
ShadingSphere ShardingSphere是一款起源于当当网内部的应用框架,2015年在当当网内部诞生,2016年由主要开发人员张亮带入京东数科,在国内经历了当当网.电信翼支付.京东数 ...
- 【番外篇】Rust环境搭建+基础开发入门+Rust与.NET6、C++的基础运算性能比较
前言:突然想打算把Rust作为将来自己主要的副编程语言.当然,主语言还是C#,毕竟.NET平台这么强大,写起来就是爽.缘起:之前打算一些新的产品或者新的要开发的东西,由于没有历史包袱,就想重新选型一下 ...
- DQL-limit分页
DQL-limit分页 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能-limit. 一.limit概述 Limit是 ...