java类的构造
⑴ 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中类的构造方法只在创建对象时调用,
如:String
str=new
String("dssd");
调用了String的构造方法。
java中类的普通的方法,用对象就可以调用
如:str.Length();
调用length()方法,求str的长度
⑶ 谈一谈Java中类的构造方法
this代表你正在构造的对象。public class Test {public Test() {System.out.println(this.toString());}public static void main(String[] args) {Test obj = new Test();System.out.println(obj.toString());}}输出的两个字符串相同(后面的数字是对象地址),说明this和obj是同一个对象。这里this就是正在构建的CommunicationDemo的对象,作为参数传给Thread的构造函数。内幕是:java对象的建立其实是在构造函数开始执行之前,就是说构造函数执行的时候,被构造的对象其实已经存在了,所以构造函数中可以用this引用当前被构造的对象进行处理(比如this.name=“Jack”)。
⑷ JAVA构造方法
构造方法的方法名必须与类名一样。
构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。
构造方法不能作用是完成对象的初始化工作,他能够把定义对象时的参数传递给对象的域。
构造方法不能由编程人员调用,而要系统调用。
构造方法可以重载,以参数的个数,类型,或排序顺序区分。
例子:
1;单个构造函数方法;’
⑸ Java类的完整构造执行顺序
这里只说一个完整的结果 至于为什么是这样的顺序 可以参考我以前的文章 深入剖析java类的构造方式
- 如果父类有静态成员赋值或者静态初始化块 执行静态成员赋值和静态初始化块 如果类有静态成员赋值或者静态初始化块 执行静态成员赋值和静态初始化块 将类的成员赋予初值(原始类型的成员的值为规定值 例如int型为 float型为 f boolean型为false 对象类型的初始值为null) 如果构造方法中存在this()调用(可以是其它带参数的this()调用)则执行之 执行完毕后进入第 步继续执行 如果没有this调用则进行下一步 (这个有可能存在递归调用其它的构造方法) 执行显式的super()调用(可以是其它带参数的super()调用)或者隐式的super()调用(缺省构造方法) 此步骤又进入一个父类的构造过程并一直上推至Object对象的构造 执行类申明中的成员赋值和初始化块 执行构造方法中的其它语句
其中第 步是比较麻烦的 因为this调用实际上会调用类的另外一个构造方法 最终应该是执行类的某个构造方法 它可能会显示的调用super 但是无论是否调用super 最终都是执行super的 也就是父类的构造方法并一直这样递归到Object 所以在子类和父类的构造中 首先构造或者说执行的是父类的构造 但是它是由子类的构造方法调用的 先于构造方法的方法体里面的内容 这个是由编译器决定的 所以我感觉简单直观一些的顺序表述应该是
- 如果父类有静态成员赋值或者静态初始化块 执行静态成员赋值和静态初始化块 如果类有静态成员赋值或者静态初始化块 执行静态成员赋值和静态初始化块 将类的成员赋予初值(原始类型的成员的值为规定值 例如int型为 float型为 f boolean型为false 对象类型的初始值为null) 执行构造方法 并可能递归调用this() 最终先执行父类的构造方法并一直递归到Object的构造方法的执行 父类的构造方法执行完成后 执行类申明中的成员赋值和初始化块 执行构造方法中的其它语句
最终的简化顺序版本是
- 父类的静态成员赋值和静态块 子类的静态成员和静态块 父类的构造方法 父类的成员赋值和初始化块 父类的构造方法中的其它语句 子类的成员赋值和初始化块 子类的构造方法中的其它语句
⑹ java 类 构造方法
PublicclassHero{
privateStringname;
Privateintattack;
Privateinthp;
Privateintmp;
Privateintspeed;
//构造方法
publicFather(Stringname,intattack,inthp,intmp,intspeed){
this.name=name;
this.attack=attack;
this.hp=hp;
this.mp=mp;
this.speed=speed;
}
}
publicclassHeroesextendsHero{
privateStringskill;
//构造方法
publicHeroes(Stringname,intattack,inthp,intmp,intspeed,Stringskill){
super(name,attack,hp,mp,speed);
this.skill=skill;
}
//测试
publicstaticvoidmain(String[]args){
Heroesh1=newHeroes("剑圣",250,2500,0,530,"高原血统");
Heroesh2=newHeroes("蛮子",350,2500,0,470,"无尽的怒火");
}
}
哥们你这是瞎搞啊我纯手给你打的望采纳吧