① JAVA 什么是构造方法
我来帮楼主下吧
先说一下语法。
构造函数,分为有参和无参
public class Student{
private String name;
private String password;
//无参
public Student(){
}
//有参
public Student(String name){
this.name=name;
}
}
为什么要有构造函数???
我先提一点。就是在我们没建构造函数的时候,会调用系统默认的无参构造函数。
构造函数的优点。
1.减少代码量。
2。减少错误匹配,增加限制
分别说上面两点
1.比如你如果没有构造函数,
需要
Student stu=new Student();
stu.setName("name");
stu.setPasswrod("01028");
相比
Student stu=new Student("name","010268");
哪个简单的?一比就出来了。特别是多个参数的时候
第2点。
比如我现在去掉无参的构造函数。
我的需求是没个学生创建对象的时候要有名字和密码。
Student stu=Student();//这个编译不过去。报错。
Student stu=Student("name","01026891");
是从严谨和安全的角度
补充。构造函数一般有很多的重载方法。方便用户使用。
再补充一点。如果你有手写构造函数,系统的无参构造函数将失效
② java中什么是构造方法
构造方法,就是java类实例化的时候调用的类里面的一个方法来构造这个定义的实体。
在类中有不同的构造方法,通过传入参数来区分,选择不用构造方法来实例化这个实体
③ JAVA里什么叫构造方法
构造方法的名称和类名相同。 比如有一个类Student
public class Student{
//下面这个方法就是他的一种构造方法,构造方法只有在new对象时才用到。有了下面这个构造方法后,就可以这么 new一个对象了 Student s = new Student();如果没有下面的构造方法,是不能这么new对象的。
public Student(){
}
}
④ java中什么是构造方法及其作用
无意中翻到这条提问,看了很多回答,发现歧义较重,在这里解答一下,为了避免后边来的朋友们踩雷
新手学习Java在构造方法这里很容易踩雷,构造方法是用来初始化的,这句勉强没错,可构造方法是用来创建对象的,这句就错了,实际上,在构造方法执行之前,类的内存空间已经开辟完成了,意思就是说对象已经创建了,这步是由new关键字来完成的,而构造方法的作用是给类中的变量进行初始化赋值
假设,假设构造方法是用来创建对象用的,就无法解释抽象类中为什么允许构造方法的存在,抽象类无法实例化,不能被创建,但是抽象类中允许构造方法的存在,举例从侧面证明一下:
abstract class Animal{
String name;
public Animal() {
System.out.println("抽象父类的无参构造");
}
abstract void eat();
}
class Dog extends Animal{
public Dog() {
super();
System.out.println("子类的无参构造");
}
@Override
void eat(){
}
}
public class Test {
public static void main(String[] args) {
Dog d = new Dog();
System.out.println(d.name);
}
}
随手敲的很简陋的一段代码,不要在意格式上的不严谨,领会精神,这段代码执行后的结果为:
抽象父类的无参构造
子类的无参构造
null
当执行Dog d = new Dog()这句代码时,大致会分两步,一是加载类,开辟类的内存空间,这是由new完成的,第二步执行构造方法,为类中的变量初始化赋值,在执行Dog的无参构造时,系统会默认调用父类的无参构造,也就是super(),super关键字是对该类的父类进行的引用,它并不是一个对象,这也是个难点,感兴趣的可以去查一下,而super()这句代码可以简单理解为调用这个类的父类的无参构造
在上述代码中,父类Animal是一个抽象类,而抽象类不可被实例化,如果构造方法的作用是创建对象,在这一步上逻辑就无法自洽,而实际情况是:抽象类执行了构造方法,但却没有创建对象,同时成员变量name也有了初始值null
⑤ 什么是构造方法什么是重载
构造方法 构造方法是一种特殊的方法,与一般的方法不同是:
1.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。
2.构造方法的调用是在创建一个对象时使用new操作进行的。构造方法的作用是初始化对象。
3.不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承。
构造方法可以被重载。没有参数的构造方法称为默认构造方法,与一般的方法一样,构造方法可以进行任何活动,但是经常将他设计为进行各种初始化活动,比如初始化对象的属性。
在Java中,任何变量在被使用前都必须先设置初值.Java提供了为类的成员变量赋初值的专门功能:构造方法(constructor)构造方法是一种特殊的成员方法,它的特殊性反映在如下几个方面:
(1)构造方法名与类名相同.
(2)构造方法不返回任何值,也没有返回类型.
(3)每个类可以有零个或多个构造方法.
(4)构造方法在创建对象时自动执行,一般不能显式地直接调用.
具体使用:分别计算长、宽为20、10和6、3的两个长方形的面积。
class RectConstructor{
double length;
double width;
double area(){
return length*width;
}
RectConstructor(double width,double length){//带参数的构造方法
this.length=length;
this.width=width;
}
}
public class RectDemo{
public static void main(String args[]) {
RectConstructor rect1=new RectConstructor(10,20);
RectConstructor rect2=new RectConstructor(3,6);
double ar;
ar=rect1.area();
System.out.println("第一个长方形的面积是"+ar);
ar=rect2.area();
System.out.println("第二个长方形的面积是"+ar);
}
}
重载 重载是不是多态?
re:
重载还是一种是多态吧,有四种形式的多态
1.虚函数多态
2模板多态
3重载
4转换
所谓的动态和静态区分是另一种基于绑定时间的多态分类,严格来说,重载是编译时多态,即静态多态,根据不同类型函数编译时会产生不同的名字如int_foo和char_foo等等,以此来区别调用。故重载仍符合多态定义——通过单一标识支持不同特定行为的能力,只是重载属于静态多态,而不是通过继承和虚函数实现的动态多态。
⑥ 构造方法是什么意思
你可以理解成 onCreate 事件处理函数。
⑦ java中什么是构造方法,什么是成员方法怎么区分的
构造方法:没有返回值(连void也没有),与类名同名
成员方法:必须有返回值,空返回就是void
⑧ 什么是构造方法构造方法和普通方法有什么区别
1楼在胡说吧?创建类会调构造方法?构造方法实在new对象的时候被调用的,是被系统自动调用的,而且一定会被调用,构造方法一般用来给对象的属性做初始化的,构造方法没有返回值,普通方法必须有返回值,就算不返回也得写个
void,这就是他们的区别