① java构造方法
构造方法的方法名必须与类名一样。
构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。
构造方法不能作用是完成对象的初始化工作,他能够把定义对象时的参数传递给对象的域。
构造方法不能由编程人员调用,而要系统调用。
构造方法可以重载,以参数的个数,类型,或排序顺序区分。
例子:
1;单个构造函数方法;’
② java中什么叫构造方法
构造方法是一种特殊的方法,与一般的方法不同是:
1.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。
2.构造方法的调用是在创建一个对象时使用new操作进行的。构造方法的作用是初始化对象。
3.不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承。
class RectConstructor{
double length;
double width;
double area(){
return length*width;
}
//下面这个方法就是所谓的构造方法,没有返回值,方法名与类名相同~~~
RectConstructor(double width,double length){//带参数的构造方法
this.length=length;
this.width=width;
}
}
其实构造方法就是为了给类中成员赋初值~~~~~~~~~~~~~
③ java 构造方法 函数
java的构造函数其实很简单。
一个类 被实例化 也就是被new的时候 最先执行的是 构造函数,如果你有留心。你会发现很多类里面根本没有写构造函数。
在java类中,如果不显示声明构造函数,JVM 会给该类一个默认的构造函数。一个类 可以有多个构造函数。构造函数的主要作用 一是用来实例化该类。二是 让该类实例化的时候执行哪些方法,初始化哪些属性。当一个类声明了构造函数以后,JVM 是不会再给该类分配默认的构造函数。
比如一个实体类
public class entity{
private int id;
private String userName;
get...set..方法
}
如果这样写该类就是默认的构造函数。该类实例化的时候 id 和 username 就是默认值 即 id=0,username=null.
如果在里面加入这样一个方法
public entity(int id,String userName){
调用get..set..
}
如果这样写 该类实例化的时候 必须给出 id 和username参数。 JVM不会再给这个类默认构造函数
你也可以理解成 在没有给构造函数的时候 JVM 给你的类加了一个这样的函数
public entity(){
this.id=0;
this.userName=null;
}
其实构造函数是用来对一个类以及变量进行实例化。
④ 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关键字来调用此默认的构造方法,代码如下:
⑤ java构造函数
1.程序首先执行main函数
2.创建Fact的对象N,并用有参构造函数初始化。
3.程序进入到Fact类中的构造函数Fact(int nn)中,用nn给成员变量n赋值。然后跳出。
4.执行N.fact()。就是用对象调用其方法fact()
5.程序进入到fact()中。声明变量i、f,并初始化f,使其值为1。然后程序进入到for循环中,为i赋初值为1,循环控制条件为i小于等于n。进入循环体中,执行f×i,并将其结果赋值给f。每执行一次循环i加1.执行n次循环后返回f。
6.执行System.out.println,意思是输出N.fact()的返回值,就是第五步返回的f值。
7.程序结束,执行默认析构函数,释放对象。
//看看我哪没说清楚
⑥ JAVA中构造函数是什么意思
什么是构造函数,问的好。
开始的时候我也不理解为什么要构造函数。因为那时候的设计思想还停留在面向过程编程。即我要干什么事,这件事有几个步骤,然后我决定怎么干。
面向对象不是这么直接简单,它的设计思想就是要代码重用。即我以前干过类似的事,那么我找出以前可以用到的代码,完成一部分。以前没有的我重新写。这样就有了类。
回到你提的问题。有了类,就是有了可以重用的代码,但是我怎么产生这个对象呢。必须要实例化这个类(当然这不是唯一产生对象的途径,比如单例模式,但本质上说所有途径都是一样的)。那么就要用到构造函数。即告诉程序我现在要实例化一个对象了,你给我马上分配内存。将内存的首地址赋给我指定的类对象。而且有时候你需要传递参数到函数里面,有了构造函数就方便了,构造函数可以有无数个。当然,传递参数到到对象里面也可以其它方法,比如直接赋一个值给成员变量,举例:
class point2{
int x,y;
point2(){
}
point2(int a,int b){//构造函数;含参的构造函数;构造方法必须要和类名一致
//且没有返回值
x=a;
y=b;
}
void output(){
System.out.println(x);
System.out.println(y);
}
public static void main(String args[]){
point2 pt=new point2();//实例化对象,这时候x,y没有赋值,默认初始值为0;
pt.output();
pt.x=3;pt.y=3;
pt.output();
}
}
⑦ 关于JAVA中构造函数
构造函数是与类同名的函数(!只有与类同名的函数才有可能是构造函数),不带返回值修饰,可以带参数,可以不写类型声明(public/private/protected)可以引用类中声明的方法/变量,可以对变量进行初始状态的设定.构造函数将在对象初始化时首先被调用,所以不需要返回值.构造函数可以声明多个,多个构造函数的参数必须不同.
拿你的例子来说,与类同名且不带返回值的函数只有一个,那就是构造函数:
public Point( int a, int b ) ,它的意思是:用参数a和b来对Point类的对象进行初始化,里面调用了setPoint的方法,就是说:使用此方法构造的Point类对象初始的位置不是(0,0),而是(a,b).
另外,你也可以根据自己的需要声明其他的构造函数,比如:
public Point(Point p),用一个已经存在的Point类对象初始化本实例,本实例具有与p相同的坐标点
public Point(Point p)
{
this.setPoint(p.x,p.y) ;
}
public Point(),默认的构造,实力对象的坐标点默认是(0,0) ;
public Point()
{
this.setPoint(0,0) ;
}
⑧ 关于java中的构造方法
一个类中可以定义带参数的构造方法,也可以定义不带参数的构造方法以,这样的定义叫做重载,但是如果定义一个没有参数的构造方法的话呢这种情况呢一般是对类进行一种初始化
例如
可以这样来定义
class 类名{
定义变量;
public 类名(){}//这种是不带参数的构造方法
public 类名(参数类形 参数名){}//带参数的构造方法
前面不用void 这样的方法不是构造方法,只是一般的普通方法
你之所以还能用new asd()方法是因为这种不带参数的构造方法是一种默认的,就算不去定义也会有的,所以你还能用
⑨ java构造函数怎么写
构造函数是对象被创建时初始对象的成员函数。它具有和它所在的类完全一样的名字。一旦定义好一个构造函数,创建对象时就会自动调用它。
构造函数没有返回类型,即使是void类型也没有。这是因为一个类的构造函数的返回值的类型就是这个类本身。
⑩ java 构造函数
楼上的回答纯属胡扯,跟这个没关系.
因为你继承了一个类,构造方法就必须先引用父类的构造方法,而你的父类没有写出无参数构造方法,所以编译器找不到无参方法,就报了错.你必须在你的子类构造方法最上面加一句
super(//放一个int值);
才可以通过编译.
就像你是个人类,继承自灵长目,你在创造出来时,必须先初始化灵长目动物的特征,才可以初始化其他的(难道你可以不进化出脊椎就可以进化出直立的双腿?)
就是把public class iniSubClass extends SuperClass {
iniSubClass(){ //出错!!
System.out.println("SubClass constructor");
}
改成
public class iniSubClass extends SuperClass {
iniSubClass(){
super(1);
System.out.println("SubClass constructor");
}
或者增加一个有参数的构造方法
iniSubClass(int i){
super(i);
System.out.println("SubClass constructor");
}