重拾JAVA基础03——构造函数

package day07;

/*构造函数:
 * 
 * 作用:给对应的对象进行初始化。
 * 
 * 构造函数的定义格式:
 * 
 * 	修饰符   函数名 (形式参数){
 * 		函数体
 * }
 * 
 * 注意细节:
 * 	1.构造函数没有返回值类型
 * 	2.函数名与类名相同。
 * 	3.构造函数并不是手动调用的,而是在创建对象时,JVM会自动调用。new 的时候调用
 * 	4.如果一个类没有显示的写上一个构造方法时,那么JAVA编译器会为该类添加一个无参的构造函数。
 * 	5.如果一个类已经显示的写上一个构造方法,那么java编译器则不会为该类添加无参的构造函数。
 * 	
 * 
 * Q1:创建对象时,JVM就会调用对应的构造方法,之前没写构造函数的时候,JVM是否会主动调用对应的构造函数?
 * A1:会调用,java编译器在编译的时候加上了构造函数。
 * 			jdk 提供了一个反编译工具 javap
 * 
 * javap 反编译工具的使用格式
 * 	javap -c -l -private 类名
 * 
 * Q2:java编译创建的无参的构造函数的权限修饰符是?
 * A2: 与该类的权限修饰符保持一致。
 * 
 * Q3: 构造函数与普通函数的区别?
 * A3: 1.返回值类型的区别:
 * 		1.1 构造函数是没有返回值类型的。
 * 		1.2普通函数有返回值类型,即使函数没有返回值也要写上void
 * 	   2.函数名的区别:
 * 		2.1构造函数函数名必须与类名保持一致。
 * 		2.2普通函数只要符合类名命名规范即可。
 * 	   3.调用方式的区别:
 * 		3.1构造函数是在创建对象时候由JVM调用的,new 的时候调用。
 * 		3.2普通函数人为调用,一个对象可以多次调用普通函数。
 * 	   4.作用上的区别:
 * 		4.1构造函数是给对象进行初始化的。
 * 		4.2普通函数是用于描述一类事物的公共行为的。
 * 
 * */

class Baby{
	int id;
	
	String name;
	
	public void cry(){
		System.out.println("55555~");
	}
	public Baby(int i, String n){
		id = i;
		name = n;
		System.out.println("带参数构造函数被调用了。");
	}
	public Baby(){
		System.out.println("无参数构造函数被调用了。");
	}
}

public class Demo1 {

	public static void main(String[] args) {
		Baby b = new Baby(1123,"desire");
		System.out.println(b.id+""+b.name);
		Baby b2 = new Baby();
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值