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();
}
}
重拾JAVA基础03——构造函数
最新推荐文章于 2022-10-20 23:11:13 发布