java2-第1章封装

封装

封装是面向对象的三大特征之一,就是将类的状态信息隐藏在类内部。
封装的具体步骤: 修改属性的可见性来限制对属性的访问:为每个属性创建一对赋值(setter)方法和取值(getter)方法,用于对这些属性的取值:在赋值方法中,加入对属

性的存取控制语句。
封装的好处: 隐藏类的实现细节;让使用者只能通过程序规定的方法来访问数据;可以方便地加入存取控制语句,限制不合理操作。

封装时会用到多个权限控制来修饰成员变量和方法,区别如下:

  1. private:成员变量和方法只能在其定义的类中被访问,具有类可见性。
  2. 默认:成员变量和方法只能被同一个包里的类访问,具有包可见性。
  3. protected:可以被同一个 包中的类访问,被同一个项目中不同包中的子类访问。
  4. public:可以被同一个项目在的所有类访问,具有项目可见性,这是最大的访问权限。
package 封装;

public class TestStudent {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Student stu=new Student();
		
		//age
		stu.setAge(100);
		System.out.println("年龄:"+stu.getAge());
		
		//height
		stu.setheight(100);
		System.out.println("身高:"+stu.getheight()+"厘米");
		
		//name
		stu.setname("aa");
		System.out.println("名字:"+stu.getname());
		
	}

}

测试类

package 封装;

public class Student {
//修改属性的可见性来限制对属性的访问(一般限制为private)
	private int age;
	private double height;
	private String name;
	//get/set
	
	//Age
	public int getAge(){
		return age;	
	}
	//height
	public double getheight(){
		return height;
	}
	//name
	public String getname(){
		return name;
	}
	
	//age
	public void setAge(int age){
		if(age>0){
			this.age=age;
		}
		else{
			System.out.println("年龄必须大于0");
			this.age=18;
		}
		
	}
	
	//height
	public void setheight(double height){
		if(height>0){
			this.height=height;
		}
		else{
			System.out.println("身高不能小于0");
			 this.height=188;
			
		}
		
	}
	public void setname(String name){
		if(name=="a"){
			this.name=name;
		}
		else{
			System.out.println("名字不对");
			this.name="a";
		}
	}
	
}

运行结果如下:

年龄:100
身高:100.0厘米
名字不对
名字:a

发布了2 篇原创文章 · 获赞 0 · 访问量 13

猜你喜欢

转载自blog.csdn.net/jcvvs/article/details/104988279