Person.class
public class Person {
public String name;
public int age;
public String sex;
//权限修饰符 类名一致的方法名 (参数列表)[异常]{方法体}
//只有这么一个特殊方法大写
//少了结构 特征修饰符(没有) 返回值类型(结构没有)
public Person(){
System.out.println("我是无参的构造方法");
}
public Person(String name,int age,String sex){
//调用了构造方法 必须放在另一个构造方法内调用且在第一行
this();
System.out.println("我是带参数的构造方法");
//创建了一个对象 (开辟空间)
//this表示创建出来的p对象的属性,是一个指代词
this.name=name;
this.age=age;
this.sex=sex;
//返回这个空间引用
}
//每一次调用构造方法之前默认执行一次语句块 没有重载概念
{
// this.eat();
System.out.println("我是一个普通的语句块");
}
//存在构造方法重载
public Person(String x){
System.out.println("我是带String参数的构造方法");
}
//普通方法
public void eat(){
System.out.println("人类吃饭的方法");
}
}
Test.class
public class Test {
public static void main(String[] args){
//调用Person类中的构造方法
//建议如果以后自己定义带参数的构造方法
//将系统提供的默认无参构造方法也一起写出来 -- 构成方法重载 不然传递参数会报错
Person p=new Person("喵喵",18,"女"); //结构上没有返回值类型 有返回值 对象
System.out.println(p.name+"今年"+p.age+"性别是"+p.sex);
}
}
输出
(x86)\Java\jdk1.7.0_71\jre\lib\rt.jar;C:\Users\YUN\Desktop\eclipse-workspace\java网课\面向对象\Constructor\out\production\Constructor" Test
我是一个普通的语句块
我是无参的构造方法
我是带参数的构造方法
喵喵今年18性别是女