本文目录一览:
- 1、Java中,什么是构造函数?
- 2、java语言中,构造函数的作用是什么
- 3、JAVA的构造函数是怎么写的。万分感谢。路过的请不要嘲笑%>_
- 4、java中构造函数的特点
- 5、Java 封闭之构造函数
- 6、java中的构造函数有什么用?用它有什么好处?在什么地方用?
Java中,什么是构造函数?
当新对象被创建的时候,构造函数会被调用。每一个类都有构造函数。在程序员没有给类提供构造函数的情况下,Java编译器会为这个类创建一个默认的构造函数。
java语言中,构造函数的作用是什么
Java类至少包含一个构造器,如果没有定义,那么系统会为这个类提供一个无参构造器。
构造函数是在创建给定类型的对象时执行的类方法,它通常用于初始化数据成员
如果该类中定义了一个私有的构造函数,那么这个类就不能被new
JAVA的构造函数是怎么写的。万分感谢。路过的请不要嘲笑%>_
JAVA的构造函数是:SetLocal EnableDelayedExpansion
set classpath=.
for %%c in (lib\*.jar) do set classpath=!classpath!;%%c
set classpath=%classpath%;./classes;
java com.ham.server.Server。
1、无参构造方法
无参构造方法又分为隐式无参构造方法和显示无参构造方法。
隐式无参构造方法
在定义类的时候,如果没有给类定义一个构造方法,Java编译器在编译时会默认提供一个隐式的构造方法,它没有任何参数,并且有一个空的方法体。例如,Person类中隐含一个无参构造方法,在main方法中可以通过new关键字来调用此默认的构造方法,代码如下:
2、显式无参构造方法
隐式无参构造方法是由系统提供的,无法修改其内容。但有时需要在调用这个构造方法时初始化类成员属性或执行一些操作,要实现这个需求,就需要为它定义一个显式无参构造方法,修改上述代码如下:
3、显示有参构造方法
构造并初始化对象是构造方法的作用,所以有时需要给这个方法传入一些参数,定义一个显示的有参构造方法。例如:
java中构造函数的特点
1.构造函数的命名必须和类名完全相同;在java中普通函数可以和构造函数同名,但是必须带有返回值。
2.构造函数的功能主要用于在类的对象创建时定义初始化的状态。它没有返回值,也不能用void来修饰。这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择。而其他方法都有返回值,即使是void返回值。尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的。
3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用;而一般的方法是在程序执行到它的时候被调用的。
4.当定义一个类的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略,不过Java编译器会提供一个默认的构造函数.此默认构造函数是不带参数的。而一般的方法不存在这一特点。
5.当一个类只定义了私有的构造函数,将无法通过new关键字来创建其对象,当一个类没有定义任何构造函数,C#编译器会为其自动生成一个默认的无参的构造函数。
Java 封闭之构造函数
; 构造函数
构造函数是什么?
在堆内存中创建对象的时候 对象均需要初始化 初始化的动作就有构造函数来实现 事实上 每个类在创建对象且初始化的时候均调用了一个 隐式构造函数 用户在程序若重写声明构造函数则是 显式构造函数 JVM在执行的时候则以用户定义的构造函数为主
构造函数特点:
函数名必须与类名保持一致
没有类型定义 即是没有void int String 类类型等等数据类型的修饰
不可存在return语句
可以通过 方法重载 的方式来区别不同对象的初始化方式
比如Person类 对象的初始化就如 刚刚诞生的婴儿那般 有的婴儿出生前还没有取好名字 但出生后称了体重;有的出生前已经取好了名字 且出生后也称了体重 但是不管怎么样 婴儿都是哭着来到这个世界的 所以都共同拥有一个方法 cry()
class Person{ private String name; //姓名 private int weight; //出生体重 private int order; //编号 //不取名字 也不称重 Person(){ System out println( Order: + order + do nothing! ); cry(); } //取好名字未称体重 Person(int order String name){ System out println( Order: + order + Name is: + name); cry(); } //未取名字 但称体重 Person(int order int weight){ System out println( Order: + order + Weight is: + weight+ Kg ); cry(); } //取了名字 称了体重 Person(int order String name int weight){ System out println( Order: + order + Name is: + name + Weight is : + weight + Kg ); cry(); } //但是都是哭着来的 void cry(){ System out println( Crying when birth! ); } public static void main(String[] args){ Person child = new Person(); System out println( 华丽的分割线 ); Person child = new Person( Smith ); System out println( 华丽的分割线 ); Person child = new Person( ); System out println( 华丽的分割线 ); Person child = new Person( John ); } } /*运行结果如下: Order: do nothing! Crying when birth! 华丽的分割线 Order: Name is: Smith Crying when birth! 华丽的分割线 Order: Weight is: Kg Crying when birth! 华丽的分割线 Order: Name is: John Weight is : Kg Crying when birth! */
上面的代码 描述了构造函数的基本特点 一个空参数的构造函数 和 三个带有不同参数变量 的构造函数 在实例化对象的时候便有了不同的实现方式
构造函数出现的时机:
在定义类的时候 分析现实世界中具体事物的时候 若该事物存在或者具备一些特性或者行为 那就将这些内容定义到构造函数中 如例子中的婴儿 具有的特性就是体重等一些生理指标和名字标示符 行为动作就是出生后先哭
构造代码块
是将重载的构造函数中所具有的共同的功能或者特性再次抽取出来 放在一起执行
格式 在程序中写一对大括号 { } 即可 与构造函数具有同样的域范围即可 然后将共有的特性抽取到括号内 比如cry(); 注下面程序中红色部分
并且是先于构造函数执行的 可以参考下面代码执行的结果
如下面的代码
class Person{ private String name; //姓名 private int weight; //出生体重 private int order; //编号 //构造代码块 { cry(); } //不取名字 也不称重 Person(){ System out println( Order: + order + do nothing! ); } //取好名字未称体重 Person(int order String name){ System out println( Order: + order + Name is: + name); } //未取名字 但称体重 Person(int order int weight){ System out println( Order: + order + Weight is: + weight+ Kg ); } //取了名字 称了体重 Person(int order String name int weight){ System out println( Order: + order + Name is: + name + Weight is : + weight + Kg ); } //但是都是哭着来的 void cry(){ System out println( Crying when birth! ); } public static void main(String[] args){ Person child = new Person(); System out println( 华丽的分割线 ); Person child = new Person( Smith ); System out println( 华丽的分割线 ); Person child = new Person( ); System out println( 华丽的分割线 ); Person child = new Person( John ); } } /*执行结果如下: Crying when birth! Order: do nothing! 华丽的分割线 Crying when birth! Order: Name is: Smith 华丽的分割线 Crying when birth! Order: Weight is: Kg 华丽的分割线 Crying when birth! Order: Name is: John Weight is : Kg */ lishixinzhi/Article/program/Java/hx/201311/27044
java中的构造函数有什么用?用它有什么好处?在什么地方用?
构造函数是类的一个特殊方法,这个方法用来生成实例时由系统自动调用,程序员无法直接调用。构造函数方法名同类名相同且参数为空。子类继承父类后默认继承父类的构造函数,即:子类存在隐含方法:super(),如果子类重写构造函数则子类也隐含调用super()。
如下例:
例一:
package sample;
public class A{
A(){
System.out.println("主类构造函数调用");
}
public static void main(String args[]){
A g=new A();
subA s=new subA();
}
}
class subA extends A{
}
执行结果为:
主类构造函数调用
主类构造函数调用
本例中子类subA中没有任何方法,所以隐含调用super(),super()指向A()。
例二:
package sample;
public class A{
A(){
System.out.println("主类构造函数调用");
}
public static void main(String args[]){
A g=new A();
subA s=new subA();
}
}
class subA extends A{
public subA(){
}
}
执行结果为:
主类构造函数调用
主类构造函数调用
本例中子类subA只有一个空方法suba()中没有任何方法,所以也隐含调用super(),super()指向A()。
例三:
package sample;
public class A{
A(){
System.out.println("主类构造函数调用");
}
public static void main(String args[]){
A g=new A();
subA s=new subA();
}
}
class subA extends A{
public subA(){
System.out.println("子类构造函数调用");
}
}
执行结果为:
主类构造函数调用
主类构造函数调用
子类构造函数调用
本例中子类subA的方法subA()虽然后输出但同上例中相同都为构造函数,所以也隐含调用super(),super()指向A()。