- 浏览: 303051 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
opalescent_:
学习了。。
java笔试题的整理和解答扩展(String专题) -
yixiao258964:
谢谢,找了好久Reverse Enginee,都说在datab ...
PowerDesigner Reverse Engineer from database-mysql -
javaAlpha:
介绍的真全啊
Java编程那些事儿86——文件操作之File类使用
Java编程那些事儿60——对象
郑州游戏学院 陈跃峰
出自:http://blog.csdn.net/mailbomb
8.3 对象
对象(Object)是面向对象技术的核心,按照面向对象的思考方式,现实中的每个实体都是一个对象,比如一个人、数据库中的一张表等,总结起来,就是面向对象技术中的经典语句——万事万物皆对象。
8.3.1 什么是对象?
其实面向对象技术只是提供了一种思考的方式,其思考方式就是把一个复杂的结构看成是一个整体,这样可以降低认知的复杂性。比如认识一个电脑,按照面向对象的认知方式,就是先把电脑分成一个个的对象:显示器对象、硬盘对象、CPU对象等等,然后再一个一个的进行认知。
同时面向对象技术也是一种设计方式,其设计方式是把一个负责的模块划分为一个个小的模块分开进行设计,这样可以降低设计的复杂性。比如设计一个电脑,按照面向对象的设计方式,就是把电脑分成一个个的对象:显示器对象、硬盘对象、CPU对象等等,然后再一个一个的进行设计。
正因为面向对象无论在认知和设计方面都降低了复杂性,所以在程序设计语言中得到了广泛的应用。其实也就是是对现实已存在的内容的升华,所以面向对象存在于生活的很多方面,并不是计算机程序设计领域里的“阳春白雪”。
在语法角度来看,对象就是一个变量,只是该变量比较复杂,其内部既包含属性(数据),也包含方法(功能)。在Java语言中,把复合数据类型(包括数组、类和接口)的变量都称作对象。所以对象的概念相对来说,就显得跟具体了。
每个对象中存储类中对应属性的数值,或者从数据角度来理解对象的话,也可以把对象看作是类似C语言中结构体变量类似的结构。
下面来介绍一下Java语言中对象相关的语法。
8.3.2 对象的语法
对象相关的语法主要包含四个部分:对象的声明、对象的初始化、引用对象中的属性和引用对象中的方法。
例如,有如下一个类的代码:
public class Box{
/**长度*/
int length;
/**宽度*/
int width;
/**高度*/
int height;
public Box(){
length = 10;
width = 10;
height = 10;
}
public Box(int l,int w,int h){
length = l;
width = w;
height = h;
}
/**求体积的方法*/
public int volume(){
return length * width * height;
}
}
8.3.2.1 对象的声明
对象的声明,就是声明一个变量,其语法格式和变量声明的语法完全相同,格式如下:
数据类型 对象名;
这里要求数据类型必须为复合数据类型,基本数据类型声明的结构只能称为变量,而不能称为对象。
示例代码:
Box b;
这里声明了一个Box类型的对象b,该对象在内存中不占用存储空间,其值为null。当然声明对象时也可以采用如下格式:
Box b,b1;
8.3.2.2 对象的初始化
由于只声明的对象在内存中没有存储空间,所以需要为对象在内存中申请空间,并初始化各个属性的值,这个过程称作对象的初始化。
对象的初始化,都是通过直接或间接调用构造方法实现。对象的初始化可以和对象的声明写在一起,也可以分开进行书写,其语法格式如下:
对象名 = new 构造方法(参数);
例如:
Box b = new Box();
Box b1;
b1 = new Box(2,3,4);
其中对象b使用Box类中不带参数的构造方法进行初始化,按照Box类的结构,对象b中每个属性的值被都被初始化为10。而对象b1使用Box类中带参数的构造方法进行初始化,依据构造方法的结构,依次指定对象b1中的长、宽、高依次是2、3、4。
在初始化对象时,调用的构造方法必须在类中声明过,否则不能调用。因为类名和构造方法的名称相同,所以名称一般不容易发生错误,在实际使用时注意参数列表的结构也需要匹配。
有些时候,因为某些原因,把构造方法隐藏起来,这个时候可以使用其它的途径来创建对象,例如使用某些方法的返回值进行初始化等。
对象在初始化以后就可以进行使用了。
8.3.2.3 引用对象中的属性
对象是一个复合变量,很多时候需要引用对象内部的某一个属性,其语法格式为:
对象名.属性名
该语法中“.”代表引用,使用该表达式可以引用对象内部的属性,则该表达式的类型和该属性在类中声明的类型一致。
例如:
b.width = 5;
该语法中,b是对象名,width是对象b中的属性,因为在类Box中width属性的类型是int型,则该表达式的类型也是int类型,在程序中可以把该表达式看成是int类型的变量进行实际使用。
而在实际的面向对象程序中,一般都避免使用对象直接引用属性(使用访问控制符实现访问限制),而替代的以getter和setter方法进行访问。
8.3.2.4 引用对象中的方法
如果需要执行对象内部的功能,则需要引用对象中的方法,也就是面向对象术语中的“消息传递”,其语法格式如下:
对象名.方法名(参数)
这里“.”也代表引用,使用该代码可以引用对象内部的方法,该语法中的参数必须和引用方法的声明结构匹配。
例如:
int v = b.volume();
这里引用对象b中的volume方法,实现的功能是求对象b的体积,并且把求得的体积赋值给变量v。
在实际的项目中,通过引用对象中的方法实现项目中信息的传递以及功能的实现,通过对象和对象之间的关联,构造成一个有机的系统,从而代表实际项目中标的各种需求。
对象相关的语法就介绍这么多,在后续的学习中将经常用到。
8.3.3 对象的存储形式
对象是一个复合数据类型的变量,其存储方式和一般变量的存储方式也不相同。在Java的执行环境中,存储区域一般分为两类:
l 栈内存
该区域存储基本数据类型
l 堆内存
存储实际的对象内容。
而实际的对象存储比一般变量复杂,对象的存储分为两部分:对象的内容、对象内容的起始地址。
发表评论
-
Java编程那些事儿37—for语句语法
2008-06-17 11:53 688Java编程那些事儿37—for语句语法 郑州游戏学院 陈跃 ... -
Java编程那些事儿38—break和continue语句
2008-06-18 15:01 743Java编程那些事儿38—break和continue语句 ... -
Java编程那些事儿39—流程控制综合示例1
2008-06-19 12:30 759Java编程那些事儿39—流程控制综合示例1 郑州游戏学院陈 ... -
Java编程那些事儿40—流程控制综合示例2
2008-06-19 20:23 861Java编程那些事儿40—流程控制综合示例2 郑州游戏学院陈 ... -
Java编程那些事儿41—流程控制综合示例3
2008-06-20 18:06 672<meta http-equiv="Conte ... -
Java编程那些事儿42—流程控制综合练习
2008-06-20 22:13 782Java编程那些事儿42—流程控制综合练习 郑州游戏学院 陈 ... -
Java编程那些事儿57—面向对象基础
2008-07-28 14:15 728Java编程那些事儿57—面向对象基础 郑州游戏学院 陈跃峰 ... -
Java编程那些事儿58—类(一)
2008-07-29 11:05 692Java编程那些事儿58—类(一) 郑州游戏学院 陈跃峰 ... -
Java编程那些事儿59——类(二)
2008-08-04 23:36 673Java编程那些事儿59——类(二) 郑州游戏学院 陈跃峰 ... -
Java编程那些事儿61—面向对象设计方法和面向对象特性(一)
2008-08-29 21:42 722Java编程那些事儿61—面向对象设计方法 郑州游戏学院 陈 ... -
Java编程那些事儿62——继承(二)
2008-09-08 12:11 784Java编程那些事儿62——继承(二) 郑州游戏学院 ... -
Java编程那些事儿63—多态性
2008-09-27 10:31 728Java编程那些事儿63—多态性 郑州游戏学院 陈跃峰 出 ... -
Java编程那些事儿64——访问控制符、修饰符和其它关键字
2008-10-14 14:12 757<meta http-equiv="Conte ... -
Java编程那些事儿65——static修饰符
2008-10-23 15:46 787Java编程那些事儿65——static修饰符 郑州游戏学院 ... -
Java编程那些事儿66——final修饰符
2008-11-11 17:19 696Java编程那些事儿66——f ... -
Java编程那些事儿67——this和super
2008-11-12 12:25 934Java编程那些事儿67——this和super 陈跃峰 ... -
Java编程那些事儿68——抽象类和接口(一)
2008-12-22 11:31 727Java编程那些事儿68—— ... -
Java编程那些事儿69——抽象类和接口(二)
2008-12-27 16:25 935Java编程那些事儿69——抽象类和接口(二) 陈跃峰 ... -
Java编程那些事儿70——抽象类和接口(三)
2009-01-05 14:20 1153Java编程那些事儿70—— ... -
Java编程那些事儿71——内部类简介
2009-01-06 09:32 740Java编程那些事儿71—— ...
相关推荐
计算机软件开发的Java编程语言及应用——评《Java编程方法论》.pdf
我制作的java编程思想的教学课件,紧跟着“java编程思想教学材料——开端”
做坦克游戏,学Java编程(三)——实现GoodTank类.pdf
做坦克游戏,学Java编程(四)——添加炮弹类.pdf
做坦克游戏,学Java编程(一)——画出游戏窗口和坦克.pdf
做坦克游戏,学Java编程(二)——创建坦克类并实现BadTank.pdf
实训项目八:JAVA网络编程(csdn)————程序
java 面向对象编程(csdn)————程序
java8函数式编程(csdn)————程序
基于java编程思想(Thinking in java, TIJ)的教学课件,教学设计请见http://blog.csdn.net/Florianjin
9.java学习第九章——对象的创建和使用+构造方法+方法重载——作业的形式:创建对象在JVM中的存储状态(内存图).pdf
8.java学习第八章——面向对象.pdf
基于java编程思想(Thinking in java, TIJ)的教学PPT,教学设计请见http://blog.csdn.net/Florianjin
Java程序的所有数据类型都是用类来实现的,Java语言是建立在类这个逻辑结构之上,所以Java是一种完全面向对象的程序设计语言。
Java编程经典——2011新版Java教程Java编程经典——2011新版Java教程
非常全面的java教程,包含了java的基础技术,还有数据库,网络,GUI方面的知识,非常好的一个教程
Java全能学习面试手册——互联网企业面试真题.zip 01 java面试——北京-百度-Java中级.pdf 02 java面试——北京-京东-Java中级.pdf 03 java面试——广州-唯品会-Java大数据开发工程师.pdf 04 java面试——杭州-阿里...
JAVA技术应用基础——对象 模式 虚拟机
ajax 与 java 之间使用 json 交换数据,JSON到Java 对象的转换,Java对象到JSON的转换。 JSONObject object=new JSONObject(javaBean); String jsonStr=object.toString();