1.封装
a.把类中的一些细节描述隐藏内部,用户只能通过接口来访问类中的内容,这种组织模块的方式叫“封装”。
b.封装是信息隐藏的一种方式。留给用户访问对象的接口(简称API),内部信息外部不可直接访问。
c.封装可以通过"private"关键字来实现
代码示例演示:
/** * Created by Pres_cheng on 2016/8/24. * 演示java的封装与通过接口调用封装的属性 */ public class Main { public static void main(String[] args) { //实例化People对象 People people = new People(); //通过接口调用People类里封装的name属性 people.setName("程其春"); System.out.print(people.getName()); } } /** * 定义一个People类 */ class People { //将People类中的名字属性封装 private String name; //定义接口方法 public void setName(String name) { this.name = name; } public String getName() { return name; } }
2.继承
a.为了代码的复用,我们可以将一个类使用另一个类的属性和方法,这样的行为我们称为“继承”。
b.继承有两种方式:单继承和多继承
单继承:子类只继承自一个父类
多继承:一个子类同时继承多个父类
c.继承通过"extends"关键字来实现
代码示例演示:
Main类
public class Main { public static void main(String[] args) { //实例化一个People对象 People people = new People(); people.run(); //实例化一个Men对象 Men men = new Men(); //子类继承父类可调用父类的方法和属性 men.run(); System.out.println(men.getFatherName()); } }
People类
/** * Created by Pres_cheng on 2016/8/24. * 父类:People类 */ public class People { //定义一个name属性 public String name = "程其春"; //定义一个run方法 public void run(){ System.out.println("People run"); } }
Men类
/** * Created by Pres_cheng on 2016/8/24. * 子类:Men类继承父类People */ public class Men extends People { @Override public void run() { //super.run(); System.out.println("men run"); } //定义接口方法 public String getFatherName(){ return name; } }
3.多态
a.什么是多态? 通俗的讲“类的不同对象对同一消息做出不同的反应”。例如:水在不同状态下会有固态、液态、气态三种状态
b.为什么引入多态的概念?让程序运行起来更灵活
c.多态分两种:静态多态和动态多态
静态多态是编译时多态:方法重载
动态多态是运行时多态:方法重写和接口的引用
代码示例演示:
Main类
public class Main { public static void main(String[] args) { Car car = new Car(); car.run(); //多态性 实例化motorcycle对象 Car motorcycle = new Motorcycle(); motorcycle.run(); //实例化bicycle对象 Car bicycle = new Bicycle(); bicycle.run(); } }
Car类
public class Car { public void run(){ System.out.println("car run"); } }
Motorcycle类
public class Motorcycle extends Car { @Override public void run() { System.out.println("motorcycle run"); } }
Bicycle类
public class Bicycle extends Car { @Override public void run() { System.out.println("bicycle run"); } }