/*
定义类的时候需要包含一下组件:
私有属性
构造方法(无参构造方法和自定义构造方法)
set/get方法
普通方法
*/
public class Dog {
private String name;
private int age;//私有属性,只能在当前类中调用
private int weight;
//构造器
public Dog(){
}
//全参构造器
public Dog(String name,int age, int weight){
this.name=name;
this.age=age;
this.weight=weight;
}
//定义一个设置年龄的方法
public void setAge(int age){
if(age>=0){
this.age=age;
}else{
System.out.println("您输入的年龄不对");
}
}
//定义一个获取年龄的方法
public int getAge(){
return this.age;
}
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public int getWeight(){
return weight;
}
public void setWeight(int weight){
this.weight=weight;
}
//方法
public void eat(){
System.out.println("eating bones");
}
public void play(){
System.out.println("playing...");
}
public void show(){
System.out.println("name:"+this.name);
System.out.println("age:"+this.age);
System.out.println("weight:"+this.weight);
}
}
/*
封装:
概念:
将类的某些信息隐藏在类内部,不允许外部程序直接访问,
而是通过该类提供的方法来实现对隐藏信息的操作
封装解决什么问题:
如果任何一个处理类都可以直接对Dog进行赋值操作,那么当值不准确的时候,可以回产生意想不到的结果
如果在赋值的同时添加一些逻辑判断呢?
封装可以解决此问题
作用:
使用封装可以保证数据的规范,不符合规范的数据将无法进行操作
好处:
1.隐藏类的内部实现细节
2.只能通过提供的方法进行访问,其他方法无法访问
3.可以根据需求添加复杂的逻辑判断语句
4.方便修改实现
面向对象的封装(狭义)可以用一句话概述:为了保证数据安全的规范
将类中的属性设置位私有属性,提供公有的外部方法供程序进行调用,可以实现丰富的细节操作
广义的封装:
可以将完成特定功能的代码块封装成一个方法,供不同的程序进行调用
*/
public class DogTest {
public static void main(String[] args) {
Dog dog = new Dog();
// dog.name="wangwang";
// dog.age=-10;
//dog.setAge(20);
// dog.weight=35;
// dog.show();
dog.setName("wangwang");
dog.setAge(20);
dog.setWeight(35);
System.out.println(dog.getName());
System.out.println(dog.getAge());
System.out.println(dog.getWeight());
}
}