1.构造方法(构造器)的定义
在一个类中定义的方法如果同时满足以下三个条件,该方法称为构造方法:
1.方法名与类名相同
2.在方法名的前面没有返回值类型的声明
3.在方法中不能使用return语句返回一个值,但是可以单独写return语句来作为方法的结束。
Tips:
(1)一个类即使什么都不写,它也会存在一个方法(构造方法),如果你不显式的定义一个构造方法,则会自动创建一个构造方法,即使这个方法什么也不做。
(2)一旦定义了有参的构造方法,无参就必须显式定义
构造方法案例
(1)在类中定义无参数的构造方法的案例:
package constructor;
class Person{
public Person(){
System.out.println("无参的方法被调用了");
}
}
public class Demo01 {
public static void main(String[] args) {
Person person = new Person();//实例化Person对象
//构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。
}
}
(2)有参的构造方法的案例:
package constructor;
class Personuzi{
int age;
//定义有参的构造方法
public Personuzi (int num) {
this.age=num;//this指的是本类中的属性
}
public void speak(){
System.out.println("今年我已经"+age+"岁了!");
}
}
public class Demo02 {
public static void main(String[] args) {
Personuzi personuzi = new Personuzi(20);
personuzi.speak();
}
}
构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。
2.构造方法的重载
与普通方法一样,构造方法也可以重载,在一个类中定义多个构造方法,只要每个方法的参数类型和个数不一样即可。在创建对象时,可以通过调用不同的构造方法类为属性赋值,根据传入参数的不同,分别会调用不同的构造方法。
构造方法重载的案例
package constructor;
class Uzi{
String name;
int age;
//1.定义有两个参数的构造方法
public Uzi (String con_name,int con_age){
name=con_name;//为name属性赋值
age=con_age;//为age属性赋值
}
//2.定义有一个参数的构造方法
public Uzi (String con_name){
name=con_name;//为name属性赋值
}
public void speak(){
//打印name和age的值
System.out.println("大家好,我叫:"+name+",我今年"+age+"岁啦!");
}
}
public class Demo03 {
public static void main(String[] args) {
//分别创建两个对象u1和u2----****根据传入参数的不同,分别会调用不同的构造方法
Uzi u1=new Uzi("海洋");
Uzi u2=new Uzi("喻师傅",18);
//通过两个对象调用speak()方法
u1.speak();
u2.speak();
}
}
Tips
(1)
在java中的每个类都至少有一个构造方法,如果在一个类中没有定义构造方法,系统会自动为这个类创建一个默认的构造方法,这个默认的构造方法没有参数,在其方法体中没有任何代码,即什么也不做。
(2)
在修饰方法的时候通常会使用public来修饰,而不是private。
package com.yushifu.oop.test02;
//笔记
public class Person {
//一个类即使什么都不写,它也会存在一个方法
/*
* public class Person {
public Person() {
}
}*/
//类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。
String name;
//构造方法可以帮我们实例化对象(赋初始值)
//1.使用new关键字,必须要有构造器,new本质是在调用构造器
//2.构造器用来初始化值
public Person(){
}
//有参构造:一旦定义了有参构造,无参就必须显式定义(自己手敲出来)
public Person(String name){
this.name = name;
}
//alt + insert 有参无参一键生成
}
仅供个人学习使用,谢谢支持。