一、面向对象
面向对象是软件开发的一种方法。它具有三个基本特点:封装、继承、多态。
二、封装
1、封装:是指隐藏对象的属性和实现细节,仅对外提供共共访问方式。
2、好处:提高了代码的重用性和安全性。
3、原则:把不需要对外部提供的方法隐藏;把属性隐藏,通过公共方法对其访问。
4、程序实例:
在这个实例中我们封装了Person的一些属性,这里可以在方法中加入一些条件,如age必须大于0小于200,体现了代码的可重用性。另外如果我们某个属性不可以访问,则不写get方法即可,这里体现了程序的安全性。
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;
}
}
三、继承
1、继承:继承是对原有类功能和属性的扩充。
2、好处:提高了代码的复用性,继承和实现是多态的前提。
3、原则:java只支持单继承;支持多个实现。
4、程序实例:
class Person {
String name;
int age;
}
class Student extends Person {
void study() {
System.out.println("good study");
}
}
class Worker extends Person {
void work() {
System.out.println("good work");
}
}
class ExtendsDemo {
public static void main(String[] args) {
Student s = new Student();
s.name = "zhagnsan";
}
}
四、多态
1、多态:父类的引用指向子类的对象。
2、好处:提高了程序的可维护性和可扩展性。
3、原则:需要继承或实现接口;有覆盖操作。
abstract class Animal {
abstract void eat();
}
class Cat extends Animal {
public void eat() {
System.out.println("吃鱼");
}
public void catchMouse() {
System.out.println("抓老鼠");
}
}
class Dog extends Animal {
public void eat() {
System.out.println("吃骨头");
}
public void kanJia() {
System.out.println("看家");
}
}
class Pig extends Animal {
public void eat() {
System.out.println("饲料");
}
public void gongDi() {
System.out.println("拱地");
}
}
class PolyDemo {
public static void main(String[] args) {
function(new Cat());
function(new Dog());
function(new Pig());
}
public static void function(Animal a) {
a.eat();
}
}