主要内容

1.类和对象的概念

2.什么是面向对象

3.什么对象的属性方法

4.何谓对象引用

5.实例化

类和对象的概念

万物皆对象,客观存在的事物皆为对象。我们大到名胜古迹,小道生活中的一件物品,例如剪刀钟表,信封甚至我们开的汽车。
类是模子,确定对象将会拥有的特征和行为。类的特点:类是对象的类型,类是具有相同属性和方法的一组对象 的集合,也就是说我们可以把 多个具有相同属性和方法的对象 用一个类表示,一个类可以对应多个对象。

什么是面向对象

面向对象就是人朝着对象,我们人关注着一个对象,那么对于计算机来讲,其实他形象的比喻了我们人更关注具体的事物的信息,我们只要用解决生活当中问题的方式,其实就可以理解计算机当中的面向对象的概念
 
比如说,刚刚高考完,觉得考的还不错,决定买个手机奖励自己,当我去了中关村,售货人员首先问的我第一句话就是你想买一个什么样的手机,此时我就会告诉他我想买一个屏幕大一点的cpu快的内存大的,能打电话发短信的手机,此时我只是描述了这个手机是什么,其实这个手机现在存不存在?他是不存在的紧接着售货员就从柜台里拿出一台华为手机,这个手机的屏幕有五寸那么大,cpu是双核的,内存有2g那么大,他可以打电话,发短信,此时我们就把具体的电话成为对象,当然如果我们对这个手机对象不满意我们还可以要求售货员再给我们挑一个其他品牌的手机对象,这个时候售货员就会把其他品牌的手机的手机放在柜台上供我们挑选,例如说可以有小米,iPhone。我们刚刚描述的这个买电话的过程可以理解为就是面向对象,我们生活当中是这么处理问题的,你会发现我们处理程序问题时也是这样,刚才售货员让我们描述了一下我想要一个什么类型的手机,此时我们可以把这个信息称为:类其实类在客观世界里是不存在的,只是用来描述我们对象信息,我们此时就可以把它当成模子,因为在计算机世界里面,计算机关注的是数据信息,而我们在描述数据信息的时候一定要描述这个数据信息的类型,所以说对象就是我们计算机当中具体的数据信息,而类就是这个信息的类型,那我们类还有一个特点就是 类是具有相同属性和方法的一组对象 的集合,也就是说我们可以把 具有多个相同属性和方法的对象 用一个类来表示,也可以说一个类可以对应多个对象。——慕课网JAVA入门第二季

对象的属性方法

属性:对象具有的各种特征,每个对象的属性都拥有特定值。

  例如手机的屏幕内存CPU。

方法:对象执行的操作。

  例如手机能打电话,发短信。

何谓对象的引用

JAVA中使用 new关键字 加上 构造方法,来创建一个对象,下面是一个名为Cat的类
 public class Cat {
public Cat() {
System.out.println("这是构造方法");
}
}
使用new + 构造方法 来创建一个对象,那么也就是 Cat c = new Cat();
前半部分,Cat c 的意思是,在内存中分配一个变量,名字叫c,这个变量是Cat类型的,它的值是什么? 一会儿在说; 后半部分,new Cat(); 这就是new关键字和构造方法来创建一个对象,Cat()是构造方法的名字没错吧?想造出一个对象来,就这么写,语法规定的,没有为什么; new Cat(); 说明 new这个Cat类的一个对象,程序运行的时候,会调用构造方法Cat(),等这个构造方法执行完了,这个Cat类型的对象也就造出来了,真正的出现在内存当中了; 使用new关键字造出来的对象,被分配在内存的堆区(heap),而且等这个对象真正出来之后,还会做一件重要的事情:我们这个对象是被分配在内存中的,那么内存地方大了,这个对象在哪里呢?怎么找到它呢?new关键字创建出一个对象之后,会把这个对象在内存中的地址返回,通过这个地址就可以找到这个对象,那么我们上面的写法, Cat c = new Cat(); 意思就是说,把这个对象在内存中的地址 赋值 给变量c,这就是JAVA中引用概念,c就叫做引用,或者叫引用变量,或者直接叫变量,没问题,都是它; c的值就是一个内存地址,或者叫引用地址,通过这个地址,就可以准确的找到我们刚才创建出来的对象,以后我们要使用这个对象做一些事情,调用此对象的方法什么的,都使用这个引用。我们new出来的这个东西,真正在内存中的这个东西叫做对象,叫做实例。
对象是内存中类的属性集合,变量是这个集合在内存中的引用地址。

实例化

在面向对象的编程中,通常把用类创建对象的过程称为实例化。
类其实是以代码的形式保存在文件当中,当我们把文件中的信息放到内存当中,此时这些信息的集合我们就称为对象,这个过程就称为实例化
new 一个对象是实例吗? 对,是实例,你说的没错。可以把这个new出来的对象叫做实例,说白了就是这个new出来的“东西”,叫它对象也可以,叫它实例也可以,对象和实例在这个角度上来讲是等价的。
 

JAVA入门 面向对象的更多相关文章

  1. Java入门 面向对象第一天

    面向对象 人为抽象的一种编程模型,在理解面向对象的代码时要按照抽象的模型来理解,不能只从代码字面来理解复杂的问题,学会拆分成一个一个独立的小问题,通过解决每一个小问题,最后解决一个大问题 类 类是事物 ...

  2. Java入门 - 面向对象 - 01.继承

    原文地址:http://www.work100.net/training/java-inheritance.html 更多教程:光束云 - 免费课程 继承 序号 文内章节 视频 1 概述 2 继承的特 ...

  3. Java入门 - 面向对象 - 02.重写与重载

    原文地址:http://www.work100.net/training/java-override-overload.html 更多教程:光束云 - 免费课程 重写与重载 序号 文内章节 视频 1 ...

  4. Java入门 - 面向对象 - 04.抽象类

    原文地址:http://www.work100.net/training/java-abstract.html 更多教程:光束云 - 免费课程 抽象类 序号 文内章节 视频 1 概述 2 Java抽象 ...

  5. Java入门 - 面向对象 - 05.封装

    原文地址:http://www.work100.net/training/java-encapsulation.html 更多教程:光束云 - 免费课程 封装 序号 文内章节 视频 1 概述 2 封装 ...

  6. Java入门 - 面向对象 - 06.接口

    原文地址:http://www.work100.net/training/java-interface.html 更多教程:光束云 - 免费课程 接口 序号 文内章节 视频 1 概述 2 接口的声明 ...

  7. Java入门 - 面向对象 - 07.包(package)

    原文地址:http://www.work100.net/training/java-package.html 更多教程:光束云 - 免费课程 包(package) 序号 文内章节 视频 1 概述 2 ...

  8. java入门——面向对象

    简介 对象具有自己的状态和行为: 描述一个对象具有什么状态和行为的过程叫做建模,不同的意图下我们对同一个事物的描述会产生不同的模型. 类 类描述一类对象的状态和行为的模板.可以把类想象成一个汽车设计图 ...

  9. [Java入门笔记] 面向对象编程基础(二):方法详解

    什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...

随机推荐

  1. [转]压缩感知重构算法之分段正交匹配追踪(StOMP)

    分段正交匹配追踪(StagewiseOMP)或者翻译为逐步正交匹配追踪,它是OMP另一种改进算法,每次迭代可以选择多个原子.此算法的输入参数中没有信号稀疏度K,因此相比于ROMP及CoSaMP有独到的 ...

  2. 设备指纹识别之User Agent 解析

    设备指纹识别之User Agent 解析User Agent 解析 zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-4- ...

  3. Eclipse Maven构建WebApp项目资源目录显示不全的原因与解决方式

    一.问题展示 1.Eclipse在使用Maven构建WebApp项目的时候,首先Maven的安装和配置都没有问题的,但是构建项目之后,Maven项目要求的几个必须要有的资源目录显示不了: 问题如下图: ...

  4. JAVA提高二十:CopyOnWriteArrayList&CopyOnWriteArraySet&ConcurrentHashMap介绍

    前面我们将java集合类的大部分类都进行了深入分析,但我们会发现一个共性问题就是并发的问题,那么如何解决呢?我们前面基本都是通过Collections的一个工具类来进行的解决,但实际大部分使用中人们普 ...

  5. 理解spread运算符与rest参数

    理解spread运算符与rest参数 spread运算符与rest参数 是ES6的新语法.它们的作用是什么?能做什么事情? 1. rest运算符用于获取函数调用时传入的参数. function tes ...

  6. Spring框架(四)AOP面向切面编程

    一.前言 在以前的项目中,很少去关注spring aop的具体实现与理论,只是简单了解了一下什么是aop具体怎么用,看到了一篇博文写得还不错,就转载来学习一下,博文地址:http://www.cnbl ...

  7. Anaconda多版本Python管理

    Anaconda是一个集成python及包管理的软件,记得最早使用时在2014年,那时候网上还没有什么资料,需要同时使用py2和py3的时候,当时的做法是同时安装Anaconda2和Anaconda3 ...

  8. ArcGIS API for JavaScript 4.2学习笔记[21] 对3D场景上的3D要素进行点击查询【Query类学习】

    有人问我怎么这个系列没有写自己做的东西呢? 大哥大姐,这是"学习笔记"啊!当然主要以解读和笔记为主咯. 也有人找我要实例代码(不是示例),我表示AJS尚未成熟,现在数据编辑功能才简 ...

  9. js代码细嚼慢咽

    全局变量的梗 例1: 对于var 的理解:将该变量声明在当前的作用域中,或者说执行上下文中. function add() { result = 3; //result变量即是隐喻全局变量 } add ...

  10. 3.sass的数据类型与函数

    数据类型 在sass里有数字.字符串.列表.颜色等类型 在cmd里 输入 sass -i 就会进入到交互模式,输入的计算可以马上得到结果 type-of()可以用来得到数据类型,如: type-of( ...