------- 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培训、期待与您交流! ----------