06-构造函数和封装

06-构造函数和封装

  • 构造方法: (构造函数) 用于对象的创建(实例化对象)

  • 特点:

    1. 方法名和类名相同
    2. 系统默认提供一个默认的无参构造
    3. 用于对象的创建(实例化对象)
    4. 就算没有返回值类型,也不可以写void; 但是可以得到一个对象的引用
  • 注意事项:

    1. 系统会默认分配一个无参构造, 用于创建对象, 但是一旦手动编写构造方法的之后,无参构造方法,系统将你早分配,
    2. 如果用户需要无参构造,需要手动编写无参构造
  • 构造方法和实例方法的异同:

    1. 构造方法: 方法名和类名相同,没有返回值也不可以写void, 系统自动生成,如果手动创建构造方法,则系统不创建 作用: 创建对象

    2. 实例方法: 名称任意,没有返回值类型是必须写void

      作用: 表示对象的行为,由对象打点的方法调用 同一个对象可以调用多次

public class Person {  //编写类
	//[1]编写属性
	public String name ;
	public int age;      //
	//[2]编写方法
	public void Person(){  //自我介绍
			System.out.println(name+age);
	}
	//无参构造方法
	public Person(){ 
	}
	//有参数构造方法
	public Person(String name,int nianling){   //  变量声明在方法中是局部变量.声明在类中方法外:成员变量
		this.name = name;  //当局部变量和成员变量的同名时,this表示成员变量. ()不同名时this可以省略
		age=nianling;     //将局部变量赋给成员变量  .
	}	
}
  • 封装: 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和方法
    1. 将属性进行私有化
    2. 编写取值赋值方法
    3. 在设置值的地方假如逻辑判断
public class Dog {  //编写类名
	//[2]编写属性
	private String name; //昵称
	private int health;//健康值
	private int love;//亲密值
	private String strain = "哈士奇";//   品种
	//[3]编写方法
	public void info(){
		System.out.println("我的昵称是:"+name+",健康值:"+getHealth()+",亲密值:"+love+",品种:"+strain);
	}
	//无参构造
	public Dog(){	
	}
	//有参构造
	public Dog(String name,int health,int love,String strain){
		this.name=name;
		setHealth(health);
		this.love = love;
		this.strain = strain;
	}
	//编写取值赋值方法
	public void setName(String name){    //设置名字
		this.name=name;
	}
	public String getName(){
		return name;
	}
	public void setHealth(int health){
		if(health<0||health>100){   //不正确的情况
			System.out.println("对不起,您输入的健康值有误,默认设置为60");
			this.health = 60;
		}else{  //正确
		this.health = health;
		}
	}
	public int getHealth(){
 		return health;	
	}	
}

猜你喜欢

转载自blog.csdn.net/qq_26270869/article/details/90024342