- 浏览: 313739 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
opalescent_:
学习了。。
java笔试题的整理和解答扩展(String专题) -
yixiao258964:
谢谢,找了好久Reverse Enginee,都说在datab ...
PowerDesigner Reverse Engineer from database-mysql -
javaAlpha:
介绍的真全啊
Java编程那些事儿86——文件操作之File类使用
Java编程那些事儿59——类(二)
郑州游戏学院 陈跃峰
出自:http://blog.csdn.net/mailbomb
8.2.2.3 构造方法声明
构造方法(Constructor),也称作构造函数、构建器等,是初学者在学习时最容易混淆的概念之一。下面首先讲述构造方法和方法的区别。
构造方法和方法无任何关系,只是在翻译时名称比较类似罢了。而且构造方法和方法的功能不同,声明和调用的语法也不相同。
构造方法的功能:实现类这种数据类型的变量的初始化。由于类是一种复合数据类型,而复合数据类型的变量也比较复杂,所以专门需要对该类变量进行初始化,则语法上提供了专门的结构——构造方法。这就是构造方法出现的原因。而方法实现的是逻辑的功能,对应于逻辑上的算法,更多的是实现程序逻辑。所以构造方法是语法结构,而方法是逻辑功能,两者之间根本无关。
构造方法声明的语法格式:
访问控制符 构造方法名称(参数列表){
构造方法体;
}
在该语法中,访问控制符指声明的构造方法被访问的权限,构造方法名称是标识符,语法上要求构造方法的名称必须类名相同,后续小括号内部是参数列表,其语法格式和方法参数列表的语法格式相同。
下面是构造方法的示例:
public class Box{
int length;
int width;
int height;
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
public Box(){
length = 10;
width = 10;
height = 10;
}
public Box(int l,int w,int h){
length = l;
width = w;
height = h;
}
}
在该Box类中,声明了两个构造方法,一个没有参数,一个包含三个int类型的参数。在没有参数的构造方法中,将三个属性的值都初始化为10。带参数的构造方法中,可以传递进来三个参数,然后在构造方法内部依次把参数的值赋值给属性。
通常情况下,构造方法的声明放在属性声明和方法声明的中间。
一个类内部的构造方法可以有任意多个,但是要求这些构造方法不能相同。因为在一个类内部构造方法的名称都是相同的,所以只要参数列表相同的构造方法都是相同的构造方法。例如以下两个构造方法是相同的:
public Test(int a,int[] b){}
public Test(int b,int[] a){}
如果一个类声明中不包含构造方法的声明,则系统会自动为该类添加一个构造方法,当然如果类中已声明了构造方法则系统不会添加,这个系统自动添加的构造方法一般被称为默认构造方法,其声明格式如下:
public 构造方法名称(){}
所以以下两个代码是相同的:
public class DefaultConstructor{
int a;
}
和
public class DefaultConstructor{
int a;
public DefaultConstructor(){}
}
在第一个代码中,没有声明构造方法,则系统自动添加默认的构造方法,而第二个代码中声明的构造方法和默认构造方法的结构一致,所以两个代码在功能上是完全相同的。
总之,构造方法是系统提供的一个结构,该结构的功能是实现对于类的变量的初始化,可以根据逻辑的需要声明对应的构造方法,并在构造方法内部根据需要进行具体的初始化。
8.2.2.4 面向对象基础使用
下面以一个简单的示例来描述面向对象的基本使用,主要是类声明的相关语法,以及基础的类设计的知识。
使用面向对象的方式来描述房屋的结构,要求如下:
(1) 门:(颜色为红色、可以被推开和关闭)
(2) 窗户:(颜色为白色、有一块玻璃(透明色、可以卸下)、可以被推开和关闭)
(3) 地:(由100块地板砖组成)
(4) 地板砖:(黄色、长1米、宽1米)
说明:其中红色用1代替,白色用2代替,黄色用3代替 透明色用0代替。
在使用面向对象描述时,将其中的名词转换为类,将该类内部的特征转换为属性,将该类内部的功能转换为方法,在构造方法内部实现对于属性的初始化。
则在该要求中,抽象的类一共有5个:门、窗户、玻璃、地和地板砖。其中的颜色作为对应类的属性,推开和关闭作为对应类的方法。前面介绍过类是一种数据类型,则可以声明类类型的变量,并可以将该变量作为类的属性,这种类和类的关系在面向对象中称作使用关系。则按照该思路实现的代码如下:
/**
* 门的类
* 文件名:Door.java
*/
public class Door {
/**颜色*/
int color;
public Door(){
color = 1; //初始化颜色
}
public void open(){}
public void close(){}
}
/**
* 窗的类
* 文件名:Window.java
*/
public class Window {
/**颜色*/
int color;
public Window(){
color = 2; //初始化颜色
}
public void open(){}
public void close(){}
}
/**
* 玻璃类
* 文件名:Glass.java
*/
public class Glass {
/**颜色*/
int color;
public Glass(){
color = 0; //初始化颜色
}
public void remove(){}
}
/**
* 地板类
* 文件名:Floor.java
*/
public class Floor {
FloorBrick[] fb;
public Floor(){
fb = new FloorBrick[100];
for(int i = 0;i < fb.length;i++){
fb[i] = new FloorBrick(); //初始化每个元素
}
}
}
/**
* 地板砖类
* 文件名:FloorBrick.java
*/
public class FloorBrick {
/**颜色*/
int color;
/**长度*/
int length;
/**宽度*/
int width;
public FloorBrick(){
color = 3; //初始化颜色
length = 1; //初始化长度
width = 1; //初始化宽度
}
}
说明:在Floor类的代码中涉及到对于类类型的变量初始化的问题,相关语法将在后续详细介绍。
在该示例中,使用面向对象的思想描述了要求的房屋结构,并以Java语言语法的格式将面向对象的思想转化为具体的代码,从而实现对于面向对象技术的基本使用。
发表评论
-
Java编程那些事儿37—for语句语法
2008-06-17 11:53 733Java编程那些事儿37—for语句语法 郑州游戏学院 陈跃 ... -
Java编程那些事儿38—break和continue语句
2008-06-18 15:01 782Java编程那些事儿38—break和continue语句 ... -
Java编程那些事儿39—流程控制综合示例1
2008-06-19 12:30 797Java编程那些事儿39—流程控制综合示例1 郑州游戏学院陈 ... -
Java编程那些事儿40—流程控制综合示例2
2008-06-19 20:23 893Java编程那些事儿40—流程控制综合示例2 郑州游戏学院陈 ... -
Java编程那些事儿41—流程控制综合示例3
2008-06-20 18:06 703<meta http-equiv="Conte ... -
Java编程那些事儿42—流程控制综合练习
2008-06-20 22:13 810Java编程那些事儿42—流程控制综合练习 郑州游戏学院 陈 ... -
Java编程那些事儿57—面向对象基础
2008-07-28 14:15 778Java编程那些事儿57—面向对象基础 郑州游戏学院 陈跃峰 ... -
Java编程那些事儿58—类(一)
2008-07-29 11:05 713Java编程那些事儿58—类(一) 郑州游戏学院 陈跃峰 ... -
Java编程那些事儿60——对象
2008-08-18 23:49 634Java编程那些事儿60—— ... -
Java编程那些事儿61—面向对象设计方法和面向对象特性(一)
2008-08-29 21:42 756Java编程那些事儿61—面向对象设计方法 郑州游戏学院 陈 ... -
Java编程那些事儿62——继承(二)
2008-09-08 12:11 821Java编程那些事儿62——继承(二) 郑州游戏学院 ... -
Java编程那些事儿63—多态性
2008-09-27 10:31 754Java编程那些事儿63—多态性 郑州游戏学院 陈跃峰 出 ... -
Java编程那些事儿64——访问控制符、修饰符和其它关键字
2008-10-14 14:12 799<meta http-equiv="Conte ... -
Java编程那些事儿65——static修饰符
2008-10-23 15:46 826Java编程那些事儿65——static修饰符 郑州游戏学院 ... -
Java编程那些事儿66——final修饰符
2008-11-11 17:19 730Java编程那些事儿66——f ... -
Java编程那些事儿67——this和super
2008-11-12 12:25 970Java编程那些事儿67——this和super 陈跃峰 ... -
Java编程那些事儿68——抽象类和接口(一)
2008-12-22 11:31 758Java编程那些事儿68—— ... -
Java编程那些事儿69——抽象类和接口(二)
2008-12-27 16:25 980Java编程那些事儿69——抽象类和接口(二) 陈跃峰 ... -
Java编程那些事儿70——抽象类和接口(三)
2009-01-05 14:20 1192Java编程那些事儿70—— ... -
Java编程那些事儿71——内部类简介
2009-01-06 09:32 774Java编程那些事儿71—— ...
相关推荐
### Java编程那些事儿 #### 程序设计概述与核心要素 **程序设计**,作为一项专业技能,涉及将现实世界的问题转化为计算机可执行的指令序列。本文将围绕《Java编程那些事儿》这本书的部分内容,深入浅出地探讨程序...
**1.1 Java编程那些事儿1——序言** 本章节主要介绍了作者撰写这本书的目的和背景,旨在帮助编程初学者更好地理解和掌握Java编程的基础知识。书中强调了通过通俗易懂的语言来解释复杂的概念,并计划覆盖以下核心...
3. **《JAVA编程那些事儿》电子书**: - 通过讲述真实的编程故事来传授经验和教训,有助于开发者避免常见错误并提高工作效率。 ### 总结 以上资源覆盖了Java编程的各个方面,从基础知识到高级主题,从理论到实践...
【标签】:“java 程序员”标签明确指出了内容的核心——与Java编程语言和Java程序员的工作相关。Java是一种广泛使用的面向对象的编程语言,用于开发跨平台的应用程序,尤其在企业级应用中占有重要地位。 【压缩...
### Java程序员上班那点事儿——理解与解析 #### 前言 《Java程序员上班那点事儿》一书深入探讨了Java程序员职业生涯中的各种实际问题,包括但不限于职业规划、技能匹配、行业现状等方面。本文将从书中提到的核心...
2. **Java JSP**:JavaServer Pages技术用于服务器端编程,与前端HTML页面结合,处理动态内容需求。 3. **静态页面与动态页面**:静态页面只包含预定义的内容,不进行服务器交互;动态页面根据用户请求动态生成内容...
标题和描述中的知识点主要围绕着IT行业的核心领域——软件开发,特别是从个人角度出发,探讨了成为一名合格且优秀的程序员所需要具备的素质、态度以及必备的知识体系。以下是对这些知识点的详细解析: ### 一、软件...
机器人教育那些事儿! Penn Apps 2014 年秋季 作者:迪恩·威廉米、索耶·布鲁克斯、卡罗琳·沙利文、克里斯蒂娜·索里斯 TRISHA(Android 上的学校和家庭智能教学机器人)是一款旨在帮助学生学习编程和机器人技术的...
Clojure是一种现代的Lisp方言,运行在Java虚拟机(JVM)之上,也被编译为JavaScript用于浏览器端。由于其函数式编程的特点和并发处理能力,Clojure在构建可靠的、易于扩展的分布式系统方面具有优势。 - AVOSCloud...
Scala是一种多范式的编程语言,与Java API相比,它的语法更加简洁,且更适合函数式编程。 8. **部署与运行**:Flink可以本地运行,也可以在分布式环境中如YARN、Kubernetes或独立集群部署。"bin"目录下通常包含启动...