有感而发:
在学java之前,我们首先学的是c语言。因此,当我学习java的时候,就会免不了把java中
的东西和c语言进行对照。所以,接下来我对于java中构造方法的理解,将用c语言进行对比。
1、类是由属性和方法组成的。
属性:属性的话,c语言中是由基本数据类型+属性名称进行定义;而在java中,声明(属
性)则需要在基本数据类型+属性名称之前加上两个访问控制符(public,private)【两个只是
目前我所知道的,据说应该是有四个】。
方法:方法的话,c语言中我所理解一般说的是函数,于是对java中普通方法的理解也是如
此。八过,java中多出了另外一种特殊方法,那就是构造方法【因为鄙人对c语言的了解或许
不够深入,所以,其实并不知道c语言中是否也有构造方法的存在】。构造方法(constructor)
是一种特殊的方法,它是在对象被创建时初始化对象的成员的方法。那么,下面我讲一下我
认为构造方法应该注意些什么。
(1)构造方法的方法名与类名相同。
(2)构造方法没有返回值,也不能有void。
(3)构造方法是可以直接对类的对象进行初始化工作。
(4)构造方法new来直接调用,直接开辟一块内存空间。
(5)在创建一个类的对象的同时,系统会自动调用该类的构造方法为新的对象初始化。
(6)当类中未定义构造方法时,那么java会给类提供一个默认的构造方法;我们在实例化对象
使用的就是默认的提供的构造方法。
(7)当你定义构造方法后,默认的构造方法会被你覆盖,无法再继续使用,只能使用你定义的
方法。
2、方法的基本格式:
构造方法格式:
public 类型(数据类型参数名,...){
//方法体
}
普通方法格式:
public 返回值类型方法名(数据类型参数名,...){
//方法体
}
3、方法的重载(理解中产生了一个问题?)
我在eclipse中试了一下,本以为只有普通方法可以进行重载的,然后发现,构造方法也是可以
进行重载的。但是,我对于普通方法的重载能够理解那是为什么,例如说,同一个类(都是学
生),但是可以有不同的方法(不同方法区别在于如小学生,中学生,大学生所能够进行的事
是有不同的,未满18岁小孩不能进网吧这种规定便是针对不同年龄断的学生进行管制的方
法)。八过,对于构造方法也进行重载,还没有想到这该是什么意思,有什么功能?
另外,对于this关键字和值传递我就不多做说明了,以后用代码直接显示其用法。
即将出现的是个人的奇怪举例理解:
构造方法:我以为可以把构造方法理解为在给定的一块class土地上造别墅。所以,建造出来的
别墅(构造方法)名字就自然而然是这块地的名字。
public class Student{
public Student(){}
}
方法重载:这块class土地可以造很多栋别墅,但是根据买别墅的富人的想法是,他们需要
属于自己的独一无二的房子,因此,我们造出来的别墅必须是相互之间不同的(即方法所带的
参数个数、参数类型、参数顺序必须要有一个不同)。
public class Student{
//无参数构造方法
public Student(){};
//有一个参数的构造方法
public Student(int a){
return a;
}
//有一个参数,但是与上面的方法不同的构造方法
public Student(String a){
return a;
}
}
代码示例我将在最近几天放出来。