主要内容

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. cookie和session(一)

    先来谈谈我对session和cookie的理解,事实上,只要你去面试web开发,面试官十有八九会问这个问题. cookie和session经常被放在一起问,其实在我看来这两个东西完全是两个不一样的. ...

  2. CS:APP3e 深入理解计算机系统_3e Y86-64模拟器指南

    详细的题目要求和资源可以到 http://csapp.cs.cmu.edu/3e/labs.html 或者 http://www.cs.cmu.edu/~./213/schedule.html 获取. ...

  3. 【JMeter】if语句中不能Failure=false解决办法

    错误写法: if(roomId.matches("regEx")) Failure=false; else{ Failure=true; FailureMessage=" ...

  4. 浅析 SpringMVC 原理和配置.

    一.原理 Spring MVC基于模型-视图-控制器(Model-View-Controller,MVC)模式实现,它能够帮你构建像Spring框架那样灵活和松耦合的Web应用程序,将请求处理的逻辑和 ...

  5. Asp.net常用开发方法之DataTable/DataReader转Json格式代码

    public static string JsonParse(OleDbDataReader dataReader) //DataRead转json { StringBuilder jsonStrin ...

  6. 538. Convert BST to Greater Tree

    Given a Binary Search Tree (BST), convert it to a Greater Tree such that every key of the original B ...

  7. ArcGIS 网络分析[1.1] 创建用于网络分析用的线类型shp文件[这个太基础了吧!]

    具体的准备,在上一篇就说过了,不再赘述. 阅读本篇前,需要的预备知识是:ArcGIS创建各种矢量数据的方法,了解地理坐标与投影坐标 本篇只创建单一的线数据,至于点数据,以后进行复杂的网络分析时再添加进 ...

  8. bzoj 4345: [POI2016]Korale

    Description 有n个带标号的珠子,第i个珠子的价值为a[i].现在你可以选择若干个珠子组成项链(也可以一个都不选),项链的价值为所有珠子的价值和.现在给所有可能的项链排序,先按权值从小到大排 ...

  9. 高仿二次元网易GACHA

    高仿二次元网易GACHA,所有接口均通过Charles抓取而来,图片资源通过 https://github.com/yuedong56/Assets.carTool 工具提取. 详情见github地址 ...

  10. java自动化测试-http请求post

    继上文的get请求http://www.cnblogs.com/xuezhezlr/p/7667995.html的简单讲解后,这篇文章大概说一下我所遇到的主要的post请求以及他的测试代码 上文介绍到 ...