首页 > 编程知识 正文

java构造方法和构造函数,java定义构造方法

时间:2023-05-05 00:00:25 阅读:147572 作者:4976

**

Java中构造函数(构造函数)和普通方法之间的差异*

一、明白什么是构造方法,什么是普通方法?

构造方法是一种特殊的方法,用于在创建对象时初始化对象。 这意味着将初始值赋给对象的成员变量,并始终与new运算符一起用于创建对象的语句中。 特别是,一个类可以具有多个构造函数,可以通过参数数量的不同和参数类型的不同来进行区分。 也就是说,它是构造函数的重载。

构造方法是在实例化类时自动调用的类的特殊成员,位于构造方法定义格式如下:

修饰符方法名称() }

其中需要注意的是:

方法名称与类名相同; 没有返回类型; 没有具体的返回值。 例如,在下面的示例中,创建对象时,可以用构造函数的方法初始化对象成员:

如果是new对象,则全部用结构方法实例化; 例如; testtest=newtest('a ); //test(a ); 其中,这是构造函数," a "是构造函数的原型; 普通的方法简单来说就是完成特定功能的代码块。其定义的格式如下:

修饰符型方法名称(参数类型参数名1,参数类型参数名2,…)

{

函数体;

返回返回值;

}

其中返回类型用于限制返回的数据类型。

二、 明白构造方法和普通方法的特点和作用是什么?

1. 构造方法的特点:

构造函数的主要作用是完成对象的初始化工作。 (如果编写的类没有构造函数,编译器将在缺省情况下添加不使用参数的方法本身为空的构造函数。)可以将定义对象时的参数传递给对象的域。 这意味着,创建对象后,该对象将被初始化。 如果此构造函数不为空,则在创建对象时将执行构造函数中的代码:

构造函数的名称必须与类名相同,包括大小写。

构造函数如果没有返回值,也不能用void限定。 如果不小心将返回类型添加到构造函数中,则构造函数将是常规方法,并且在运行时会出现找不到构造函数的错误。

一个类可以定义多个构造方法。 如果在定义类时定义构造函数方法,编译系统将自动插入不带参数的缺省构造函数。 此构造函数不执行代码。

构造方法可过载,按参数个数、类型、顺序过载。 例如:

publicstaticvoidmain (string [ ] args ) { Phone p1=new Phone ); P1 .表演(); system.out.print ln (---------); phoneP2=newphone('vivoxplay5',2999 ); P2 .表演(); } } class phone { private string brand; //品牌隐私; //价格//无参结构方法public Phone () { System.out.println "无参结构" ); (/)参考结构器publicphone(stringbrand,int price ) { this.brand=brand; this.price=price; System.out.println; } public void show () system.out.println ) brand'.'price ); } } 构造方法给成员变量赋值的两种方式的区别:

/**无参结构化方法:初始化属性的* set/get方法:修改属性值* @ param args */publicstaticvoidmain (string [ ] args ) /无参结构化创建对象phone P1=new pow p1.setprice ) 2999; P1 .设置品牌(vivo ); P1 .表演(); system.out.print ln (---------); //自带结构创建对象phonep2=newphone('vivoxplay5',2999 ); //这种方式不是改名,而是把原本

对象变成垃圾 //p2 = new Phone("vivo",2000); p2.show(); } }class Phone{ private String brand; //品牌 private int price; //价格 public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } //无参构造方法 public Phone(){ System.out.println("无参构造"); } //有参构造器 public Phone(String brand, int price) { this.brand = brand; this.price = price; System.out.println("有参构造"); } public void show(){ System.out.println(brand+"..."+price); } }

2. 构造方法的作用:

【1】 首先,构造函数用来生成并初始化对象;
【2】其次,构造函数可以通过函数的重写给对象赋初始值,简化代码,例如:

在这段代码中,本文创建了两个Person对象,分别赋给了初始值,但是如果创建的对象比较多的话,代码就显得很重复,这时可以重载Person类里面的构造方法,以在创建对象的时候就赋给它们初始值,这样就可以省去重复的代码了:

在这里有一个问题需要特别的注意:在默认的情况下,一个类会有一个默认的构造函数,这个构造函数没有内容也没有返回值,一般会省略。在这种情况下,编译器在编译的时候会默认加上一个无参且方法体为空的函数。但是,如果类的构造函数被重写了,如上述的例子,Person类已经有了一个有参数有方法体的构造函数,这是编译器就不会再给它默认加上一个无参且方法体为空的构造函数,可以理解为无参的构造函数被覆盖了,这种情况称为没有默认构造函数。
而在函数的继承里,子类必须调用父类的构造函数。但是子类只能继承父类的默认的构造函数,如果父类没有默认的构造函数,那么子类不能从父类继承默认构造函数,这是子类必须使用super来实现对父类的非默认构造函数的调用。因此,在创建对象的时候,需要先利用super来调用父类的默认的构造函数来对对象进行初始化,然后调用子类自己定义的构造函数。

3.普通方法的特点与作用

【1】普通方法的特点:
方法是解决一类问题的步骤的有序组合;
②一个方法必须属于某一个类的,独立于类的方法不存在的;
③Java的普通方法可以操作调用它从属的对象和参数列表中的参数;
普通方法的调用方式为:对象.方法名(参数),如接下来的代码为例:

public void driverCar (int a,double b) { speed= 50; direction= "南方";}

⑤Java方法只能有一个返回值,但是“值”的形式具有多样性
【2】作用:
完成特定功能的代码块,即根据自己项目的需要,进行自己编码完成项目所需要的功能。

三、明白构造方法和普通方法的调用方式是怎样调用的?

1)构造方法的调用方式

构造方法分为:无参构造方法有参构造方法

A. 无参构造方法:

public class Student{public Student(){ //无参构造方法System.out.println("无参方法被调用");}}public class Test {public static void main (String[] args){Student stu = new Student(); //实例化Student对象}}//该方法是无参的构造方法,即构造方法不接收参数,执行后输出即可,无参的构造方法被调用。

B. 有参构造方法

为一个属性赋值有两种方法: ①直接访问对象属性②通过setXxx()方法。
如果想在实例化对象的同时就为了对象的属性进行赋值,可以通过带参数的构造方法来实现

public class Student{private String name;private int age;public Student(String name,int age){ //有参构造方法 this.name = name; this.age = age ;}public void show (){System.out.println("姓名:"+name+"年龄:"+age);}}public class Test02(){public static void main (String[] args){Student stu = new Student("jkdss",25); //实例化对象的同时赋值stu.show();}}

2)普通方法的调用方式

普通方法分为 有明确返回值的方法没有明确返回值的方法

A. 有明确返回值的方法的调用

可以单独调用(无意义),输出调用,赋值调用(推荐)。

public static int sum (int a , int b){ int c = a+b; return c ;}public static void main(String[] args){ //sum(10,20); //单独调用 //System.out.println(sum(10,20)); //输出调用 int sum01 =sum(10,20); //赋值调用}

B. 没有明确返回值的方法调用(void类型方法的调用)

只能单独使用。(如果一个方法没有明确的返回值类型,方法定义中“返回值类型”就可以用void代替,表示该方法无返回值类型。)

四、注意事项

① Java中的每一类至少有一个构造方法,如果我们没有去创建,系统自动会为我们创建一个默认的无参构造方法;

②但是如果我们定义了构造方法,系统就不会再为我们提供默认的无参构造方法了。这个时候想使用无参构造方法必须自己定义。因为实例化对象时,不一定会输入参数,那么没有无参的构造方法,又不输入参数,就会出错;

③构造方法需要用public来修饰,若使用private,在其他类中无法将其实例化;

④构造方法是可以重载的。所谓重载,是指一个类中可以定义多个方法名相同,但是参数不同的方法。调用时,会根据不同的参数自动匹配对应的方法。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。