`
wanjianfei
  • 浏览: 319286 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java编程——类(二)

    博客分类:
  • J2SE
阅读更多

8.2.2.3 构造方法声明

构造方法(Constructor),也称作构造函数、构建器等,是初学者在学习时最容易混淆的概念之一。下面首先讲述构造方法和方法的区别。

构造方法和方法无任何关系,只是在翻译时名称比较类似罢了。而且构造方法和方法的功能不同,声明和调用的语法也不相同。

构造方法的功能:实现类这种数据类型的变量的初始化。由于类是一种复合数据类型,而复合数据类型的变量也比较复杂,所以专门需要对该类变量进行初始化,则语法上提供了专门的结构——构造方法。这就是构造方法出现的原因。而方法实现的是逻辑的功能,对应于逻辑上的算法,更多的是实现程序逻辑。所以构造方法是语法结构,而方法是逻辑功能,两者之间根本无关。

构造方法声明的语法格式:

访问控制符 构造方法名称(参数列表){

构造方法体;

}

在该语法中,访问控制符指声明的构造方法被访问的权限,构造方法名称是标识符,语法上要求构造方法的名称必须类名相同,后续小括号内部是参数列表,其语法格式和方法参数列表的语法格式相同。

下面是构造方法的示例:

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;

}

}

在该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之——类热加载

    在Java编程中,类的加载是程序运行的重要环节。传统的Java应用程序在启动时,由JVM(Java虚拟机)通过类加载器将类加载到内存中,一旦加载完成,除非程序退出,否则这些类通常不会被重新加载。然而,在开发过程中,...

    Java编程——记事本通信软件

    这份资料详细讲解了&lt;Java编程——记事本通信软件内容&gt;,希望能给能应用该软件的朋友一点帮助!给你带去的一点点方便就是对我最大的回报! Thank you!

    java程序——小鸟过杆小游戏

    【Java程序——小鸟过杆小游戏】是一个基于Java编程语言开发的简单娱乐应用,它展示了游戏开发的基本原理和Java编程的一些核心概念。在这个游戏中,玩家控制一只小鸟,试图让它在不断升起的柱子间穿梭,避开障碍物,...

    java程序设计-类似捕鱼达人的java小游戏,swing GUI

    java程序设计——类似捕鱼达人的java小游戏java程序设计——类似捕鱼达人的java小游戏java程序设计——类似捕鱼达人的java小游戏java程序设计——类似捕鱼达人的java小游戏java程序设计——类似捕鱼达人的java小游戏...

    java毕业设计——java+毕业设计+扫雷(程序).zip

    java毕业设计——java+毕业设计+扫雷(程序).zip java毕业设计——java+毕业设计+扫雷(程序).zip java毕业设计——java+毕业设计+扫雷(程序).zip java毕业设计——java+毕业设计+扫雷(程序).zip java毕业设计——java...

    java编程——学员管理系统

    在"java编程——学员管理系统"中,客户端可能包含一系列的GUI组件,如文本框、下拉菜单、按钮等,以便用户可以方便地浏览和操作数据。开发客户端时,可能会用到Java Swing或JavaFX库来构建图形用户界面。 服务器端...

    实战Java虚拟机——JVM故障诊断与性能优化.pdf

    通过阅读《实战Java虚拟机——JVM故障诊断与性能优化》,读者不仅可以学习到JVM的基础知识,还能掌握如何在实际工作中诊断问题和优化性能,从而提升Java应用程序的运行效率和稳定性。这本书是Java开发者深入理解JVM...

    java课件——全面介绍java知识

    这个"java课件——全面介绍java知识"提供了一套完整的Java学习资源,旨在帮助初学者和进阶者深入理解和掌握Java编程技术。 首先,让我们从基础开始。Java的核心概念包括类、对象、封装、继承、多态。类是对象的模板...

    java基础——————试题库

    Java是一种广泛使用的面向对象的编程语言,以其跨平台、高性能和丰富的类库而闻名。这份“java基础——————试题库”资源旨在...在学习过程中,不断实践和总结是非常重要的,理论结合实际,才能真正掌握Java编程。

    java项目——飞机游戏

    总结来说,【Java项目——飞机游戏】涵盖了Java编程基础、面向对象编程、GUI设计、事件处理、游戏逻辑实现等多个知识点。通过这个项目,初学者可以系统地学习并实践Java编程,同时提高问题解决和项目管理能力,为...

    Java编程经典——2010新版Java教程

    非常全面的java教程,包含了java的基础技术,还有数据库,网络,GUI方面的知识,非常好的一个教程

    java小程序——石头剪刀布

    【标题】:“java小程序——石头剪刀布” 这个程序是一个基于Java编程语言的小游戏,它实现了经典的“石头、剪刀、布”游戏。在计算机科学中,这种类型的游戏通常用于教学目的,因为它涉及到基本的输入输出处理、...

    清华大学JAVA教程——比较基础

    【清华大学JAVA教程——比较基础】是一套专门为初学者设计的JAVA编程学习资源,旨在帮助学习者从零开始逐步掌握这门流行的编程语言。这套教程以其深入浅出的方式,深受广大编程爱好者欢迎,尤其适合对JAVA感兴趣但...

    java毕业设计——java游戏设计打飞机程序设计与开发(源代码+论文).zip

    java毕业设计——java游戏设计打飞机程序设计与开发(源代码+论文).zip java毕业设计——java游戏设计打飞机程序设计与开发(源代码+论文).zip java毕业设计——java游戏设计打飞机程序设计与开发(源代码+论文).zip ...

    Java编程经典——2011新版Java教程

    Java编程经典——2011新版Java教程Java编程经典——2011新版Java教程

    安卓手机Java编程——AIDEJavaIDE3.2.apk

    AIDE集成开发环境是一个Android Java集成开发环境,可以让你在Android系统内进行Android软件和游戏的开发。AIDE集成开发环境不仅仅是一个编辑器,而是支持编写-编译-调试运行整个周期,开发人员可以在Android手机...

    java毕业设计——基于java的视频会议系统的设计与实现(程序+论文).zip

    java毕业设计——基于java的视频会议系统的设计与实现(程序+论文).zip java毕业设计——基于java的视频会议系统的设计与实现(程序+论文).zip java毕业设计——基于java的视频会议系统的设计与实现(程序+论文).zip ...

    Java基础——面向对象编程

    总结,面向对象编程是Java编程的基础,类和实例是面向对象编程的核心概念。数据封装、方法和构造方法是面向对象编程的重要组成部分。方法重载是Java编程中的一个重要概念,可以提高代码的灵活性和可读性。

    JAVA教程——PDF

    ### JAVA教程——PDF:基础知识概览 #### Java语言:历史与发展 Java,源自Sun公司的创新,最初名为Oak,旨在为家用电子产品开发一个分布式代码系统,让日常设备如电冰箱、电视机具备网络通信能力。然而,由于C++...

    java网络编程——网络版题库程序

    在这个"java网络编程——网络版题库程序"中,我们可以深入探讨几个关键的技术元素:Java Socket、多线程以及MySQL数据库的集成。 首先,Java Socket是Java API提供的网络通信基础,允许两台机器上的应用程序通过TCP...

Global site tag (gtag.js) - Google Analytics