面向对象——三大特征

面向对象——三大特征

1. 封装

封装是把客观事物抽象成类,并且把自己的属性和方法让可信的类或对象操作,对不可性的隐藏。

封装的优点

  • 良好的封装能够减少耦合。
  • 类内部的结构可以自由修改。
  • 可以对成员变量进行更精确的控制。
  • 隐藏信息,实现细节。

实现java封装:

1.修改属性的可见性来限制对属性的访问(一般限制为private)。
例如:

public class Person {
    private String name;
    private int age;
}

2.对每个值属性提供对外的公共方法访问,也就是创建一对赋取值方法,用于对私有属性的访问。
例如:

public class Person{
    private String name;
    private int age;
    
    public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}
}

3.访问私有的变量
例如:

public class doing{
	public static void main(String[] args){
		Person person = new Person();
		person.setAge(18);
		person.setName("faye");
		System.out.println("她是"+ person.getAge()+ "岁的"+ person.getName());
		}
}

输出结果:

 她是18岁的faye

`

2. 继承

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

继承的好处:

  • 继承的出现提高了代码的复用性,提高软件开发效率。
  • 继承的出现让类与类之间产生了关系,提供了多态的前提。

类的继承格式:

class 父类 {
}
 
class 子类 extends 父类 {
}

例如:

//父类
public class people {
	    private String name;  
	    private int age; 
	    
	    public people(String myName, int myage) { 
	        this.name = myName; 
	        this.age = myage;
	    } 
	    public void eat(){ 
	        System.out.println(name+"正在吃"); 
	    }
	    public void sleep(){
	        System.out.println(name+"正在睡");
	    }
	    public void introduction() { 
	        System.out.println("我是"+ age +"岁的"+ name +"."); 
	    } 
		
}
//子类faye
public class faye extends people{
	
	public faye(String myName, int myage) {
		super(myName,myage);
	}
}
//子类spike
public class spike extends people{

	public spike(String myName, int myage) {
		super(myName, myage);
	}
}
//调用
public class test {
	public static void main(String[] args) {
		faye faye = new faye("faye",18);
		spike spike = new spike("spike",81);
		faye.eat();
		faye.sleep();
		faye.introduction();
		spike.eat();
		spike.sleep();
		spike.introduction();
		
	}
}

运行结果:

faye正在吃
faye正在睡
我是18岁的faye.
spike正在吃
spike正在睡
我是81岁的spike.

3. 多态

一个事务的多种状态;多态是在继承的基础上存在的,父类引用指向子类实例!!

多态的优点

  • 消除类型之间的耦合关系
  • 可替换性
  • 可扩充性
  • 接口性
  • 灵活性
  • 简化性

多态存在的三个必要条件:继承 ; 重写 ; 父类引用指向子类对象:Parent p = new Child();

例如:

public class people {
    void doing(){
        System.out.println("eat");
    };
    void appearance(){
        System.out.println("normal");
    };
}
class faye extends people{
        public void doing() {
            System.out.println("爱好赌博");
        }
        public void appearance() {
            System.out.println("非常美");
        }
        public void age(){
            System.out.println("18");
        }
}
class spike extends people{
        public void doing() {
            System.out.println("做赏金猎人");
        }
        public void appearance() {
            System.out.println("有点小帅");
        }
}
class does{
    public static void main(String[] args) {
        people people1 = new faye();
        people1.appearance();
        people people2 = new spike();
        people2.appearance();
    }
}

运行结果:

非常美
有点小帅
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值