黑马程序员_Java面向对象四大特征

------- android培训java培训、期待与您交流! ----------

封装的概念:

    是指隐藏对象的属性和实现细节,仅对外提供公共的访问方式.
好处:
    将变化隔离.便于使用.提高重用性,提高安全性.
封装原则:
    将不需要对外提供的内容都隐藏起来.
    把属性都隐藏,提供公共方法对其访问.
实现:
    1.用private(私有,权限控制符)修饰成员变量和函数。
    2.私有化后提供对外访问人方法。
例子:
    package com.dmm.javase;
/*
 * 定义一个年龄属性加入逻辑判断语句并封装
 * */
class Person{
    //将属性私有化
    private int age;

    //提供set方法,用于设置和设限
    public void setAge(int age) {
        if (age >0 && age<=100) {
            this.age = age;
        }else{
            
            System.out.println("年龄错误!");
        }
    }
    
    //提供对外访问的get方法
    public int getAge() {
        return age;
    }
    
}
//测试
public class PrivateTest {
    public static void main(String[] args) {
        Person p = new Person();
        p.setAge(50);
        System.out.println(p.getAge());
    }

}


    
继承的概念:
    使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类
好处:
    实现代码重用,减少代码书写量,很容易修改和扩展已有的实现
坏处:
    打破了封装,因为基类向子类暴露了实现细节.白盒重用,因为基类的内部细节通常对子类是可见的
实现:
    使用extends关键字.同时,java中是单继承,多层继承.
例子:
    
package com.dmm.javase;
/*
 * 定义一个person1类,有age and name.再定义一个student类继承person.实现自己特有的方法读书.
 * 定义一个worker类继承person,实现自己特有的方法work
 * */
class Person1{
	public int age;
	public String name;
	public void eat(){
		
		System.out.println("吃东西");
	}
}

class Student extends Person1{
	public void read(){
		System.out.println("读书");
		
	}
	
}
class Worker extends Person1{
	
	public void work(){
		
		System.out.println("工作");
	}
}


    
抽象的概念:
    找出一些事物相似和共性之处,然后将这些事物归为一个类,这个类只考虑这些事物的相似和共性之处。
抽象类的特点:
    包含抽象方法的类必须是抽象类,抽象类不能实例化,抽象方法没有主体。通过继承实现。
接口的特点:
    全部由抽象方法组成的就是接口。接口中的修饰符必须为public.接口只能通过Implements实现。可以多实现用逗号隔开。
例子:
package com.dmm.javase;
/*
 * 定义一个抽象类和抽象方法
 * */
abstract class A{
	
	public abstract void play(); 
}

class B extends A{

	@Override
	public void play() {
		// TODO Auto-generated method stub
		System.out.println("---实现抽象类----");
	}
	
	
}
public class AbstractTest {

}
package com.dmm.javase;
/*
 * 定义一个接口。
 * */
interface USB {
	public abstract void show();
	
}
class UPan implements USB{

	//实现接口
	public void show() {
		// TODO Auto-generated method stub
		System.out.println("-----插入U盘-----");
	}
	
	
}
public class InterfaceTest {

}



多态的概念:
    某一类事物存在的多种体现形态。
多态的体现:

    父类的引用指向了自己的子类对象。父类的引用可以接受自己的子类对象。

package com.dmm.javase;

class DongWU{
	
	public void jiao(){
		
		System.out.println("动物叫");
	}
}

class Dog extends DongWU{
	
	public void jiao(){
		
		System.out.println("狗叫");
	}
	
	public void chifan(){
		
		System.out.println("吃东西");
	}
}
public class DuoTa {
	
	public static void main(String[] args) {
	  DongWU du = new Dog();
	  du.jiao();
	  
	  Dog d = (Dog) du;
	  d.chifan();
	}
}

                                                                                                 ------- android培训java培训、期待与您交流! ----------

   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值