黑马程序员----面向对象

来源:互联网 发布:北京久其软件 编辑:程序博客网 时间:2024/06/05 08:04

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

        在Java的开发过程,其实就是不断的创建对象,使用对象,指挥对象做事情。设计的过程,其实就是在管理和维护对象之间的关系。

面向对象的三个特征:1、封装;2、继承;3、多态

一、类与对象

类是具有同一属性的对象的集合,是抽象的,不具体的。比如说狗,猫,猪。它们都是动物,我们就可以将他们归为动物类。而具体的实例,一只猫、一只狗就是动物类中的一个对象。类里有成员变量、成员函数、静态变量、静态函数、构造函数。例如:

class Person{//成员变量String name;//成员变量int age;//静态变量static float sal;//静态方法public static void speak(){System.out.println("我会说话");}//成员方法public void playBall(){System.out.println("我会打球");}//构造函数public Person(String name,int age){this.name=name;this.age=age;}}

二、封装

封装是面向对象的一个特征,它主要表现是隐藏对象的属性和实现细节,仅对外提供公共访问方式。例如:

class Person2{int age;//对外提供访问的方法public int getAge() {return age;}    //对外提供修改age的方法public void setAge(int age) {this.age = age;}    public static void speak(){System.out.println("我会说话");}public void playBall(){System.out.println("我会打球");}//构造函数public Person2(int age){this.age=age;}}public class Oo2 {public static void main(String[] args) {Person2 p=new Person2(10);//创建一个成员变量age=10的对象p.setAge(20);//利用封装提供的方法修改成员变量agep.speak();}}

三、继承

继承是子类复制了父类所有的数据属性和方法(private修饰的方法除外),在此基础之上再进行增删改查自己的属性和方法。例如:

class Person3{//父类的睡觉的方法public void sleep(){System.out.println("我会睡觉");}}class Student extends Person3{//子类的学习的方法public void study(){System.out.println("我会学习");}}public class Oo3 {public static void main(String[] args) {Student s=new Student();//新建一个子类对象s.sleep();//继承了父类 睡觉的方法s.study();//Sdudent自己的 学习的方法}}

四、多态

多态是指父类的引用指向了自己子类的对象,父类中有方法被子类重写。例如:

class Animal{public void speak(){System.out.println("我会叫");}}class Cat extends Animal{public void speak(){System.out.println("我会喵喵叫");}public void catchMouse(){System.out.println("我会抓老鼠");}}public class Oo4 {    public static void main(String []args)    {    Animal a=new Cat();//将父类Animal的引用指向子类Cat    a.speak();//打印出的是:我会喵喵叫    //注意 a 是父类Animal,不会子类Cat的抓老鼠的方法    }}








0 0