java oop入门_java入门(十六) | OOP(三)之构造方法

fe842ae41263b93833740371aac75ba6.png

构造方法

1.1 概念

构造方法是一种特殊的方法,它是一个与类同名的方法。

对象的创建就是通过构造方法来完成.

其功能主要是完成对象的创建或者对象的初始化。

当类实例化new一个对象时会自动调用构造方法。

构造方法和其他方法一样也可以重载(方法名相同+参数列表不同)。

1.2 形式

有无参构造和有参构造两种

修饰符 类名([参数列表]){

代码……

}

1.3 练习1:构造方法创建对象

一个.java文件中可以有多个类,但是,只能有一个类被public修饰,而且这个类名就是.java的文件名

new Person() 创建对象时,会自动调用无参构造方法

无参构造方法,默认就会存在,前提是没有含参构造

重载的构造方法中方法名可以相同,但是参数列表必须不同

package cn.qile.constructor;

public class Test1_Constructor {

public static void main(String[] args) {

//创建Person对象

//1、new Person()创建对象时,会自动调用 无参 构造方法

Person p = new Person();

//自动调用含参 的构造

Person p2 = new Person("jack");

//自动调用含参 的构造

Person p3 = new Person("jack",10);

}

}

//创建Person类

class Person{

//构造方法:修饰符 类名(){}

//2、无参构造,默认就会存在,前提是没有含参构造

public Person() {

System.out.println("构造方法");

}

//3、重载的构造方法:方法名可以相同+参数列表必须不同

public Person(String n) {

System.out.println("构造方法"+n);

}

public Person(String n,int age) {

System.out.println("构造方法"+n+age);

}

}

总结:

构造方法在什么时候被触发?在创建对象时触发

创建对象会触发哪个构造方法怎么决定?要看你创建对象是的参数列表,自动匹配要调用的构造方法

1.4 练习2:构造方法赋值

触发重载构造方法

构造方法给成员变量赋值

(1). 在创建对象时需要把实参传递给形参

(2).形参拿到值后再给成员变量赋值

package cn.qile.constructor;

//测试构造方法赋值

public class Test2_Constructor2 {

public static void main(String[] args) {

//创建Teacher对象测试

Teacher t = new Teacher();

//1、触发重载构造方法

Teacher t2 = new Teacher("王一博",18,100000);

//测试属性都有值了吗?有了,因为创建对象时已经给成员变量赋值了

// System.out.println(t2.name);

// System.out.println(t2.age);

// System.out.println(t2.salary);

// Teacher [name=王一博, age=18, salary=100000.0]

System.out.println(t2);//因为Teacher类中提供了toString()

}

}

//创建Teacher类

class Teacher{

String name;

int age;

double salary;

//无参构造,默认就存在,提供构造方法

public Teacher() {

System.out.println("构造方法");

}

//2、构造方法给成员变量赋值:在创建对象时需要把实参传递给形参n a s

//形参n a s拿到值后给成员变量一一赋值

public Teacher(String n,int a,double s) {

name = n;

age = a;

salary = s;

}

//toString() --查看属性的值

@Override

public String toString() {

return "Teacher [name=" + name + ", age=" + age + ", salary=" + salary + "]";

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值