面向对象学习

:对现实世界中事物的抽象。如:Student
对象:现实世界中具体的个体。张三、李四 这些具体的学生
Student是一个抽象的身份,而你我他是真实存在的人。
面向对象的特征:抽象、封装、继承、多态

抽象

我们定义一个类的过程就是抽象出某些对象的特征

封装

        封装就是把抽象的数据和对数据进行的操作方法封装在一个类中,数据被保存在类的内部,通常我们将类的属性封装为private或protect,要想调用这些方法只有定义该类的成员变量,调用get、set方法才能对其进行读取或修改;
        public:所有人都可以访问、修改属性或者调用方法;
        protected:只有类自己及其子类和在同一个包内可以访问调用
        private:只有类自己可以调用,其他任何地方都不允许使用。
        我们通常将类的属性定义为该  类型,使外部只能通过类提供的get、set方法来获取或修改属性值。这样可以在 get、set方法中定义一些规则,增加了程序的安全性。
        default:默认类型,上述三种类型都不写时系统默认是default类型,只能类自己和同一个包                         内的程序使用

继承

        子类和父类之间存在严格的继承关系,子类一定属于父类,包含父类的一切属性
例如:定义父类为 Person ,子类为 朱翰鹏,朱翰鹏一定是一个人,拥有一个人的一切属性;

      注意:子类只能继承一个父类

                 所有没有写明继承了哪一个类的子类,系统默认继承Object类,Object是所有类的父类

public class Person{
    private boolean alive = true; //默认他活着
    public void getAlive() {
        if (this.alive)
            System.out.println("活着");
        else
            System.out.println("死了");
    }
    public void setAlive(boolean b){
        this.alive = b;
    }
}

public class ZhuHanpeng extends Person{
    public static void main(String[] args) {
        Person zhp = new ZhuHanpeng(); //类的初始化
        zhp.getAlive();//活着
        zhp.setAlive(false);
        zhp.getAlive();//死了
    }
}

多态

        多态是面向接口编程

        多态是指通过指向父类的指针,来调用在不同子类中实现的方法。

 

 

public class Person{
    public void sleep(){
        System.out.println("他不睡觉");
    }
}

public class ZhuHanpeng extends Person{
    @Override
    public void sleep(){
        System.out.println("他在教室睡");
    }
}
public class ZhuHanPeng2 extends Person{
    @Override
    public void sleep(){
        System.out.println("他在宿舍睡");
    }
}
public class SleepAt {
    public static void main(String[] args) {
        Person person = new ZhuHanpeng();
        person.sleep();//他在教室睡
        Person person2 = new ZhuHanPeng2();
        person2.sleep();//他在宿舍睡
    }
}

        接口:

Java中不支持多继承,于是接口实现了多继承的功能,一个类可以 implements 多个接口

接口interface: 接口是一个纯粹的抽象类(接口里面所有的方法都是抽象方法)
接口就是一个规范,他没有提供任何是实现,具体的功能由实现接口的子类去实现。
接口就是一个规范,可插拔(可以被替换,首先定义一个标准(接口),大家都遵守这个标准,就可以实现互相之间替换)
1、 接口是一个纯粹的抽象类 ,接口里面的方法都是抽象方法 public abstract。
2、接口里面所有的属性public static final

final:最终的意思

final变量:这个变量就不能被修改,常量   public static final double PI  = 3.1415;

final类:这个类就不能被继承

final方法:这个方法就不能被重写

静态属性、静态方法:

 

小区里面业主的房子可以看成一个一个的对象,这些都是属于特定的业主所独有。
但是小区里面也有一些公共设施(健身器材、绿地),这些公共设施是 属于这个小区的
但是是可以被所有的业主对象所使用的。
java类里面定义的静态变量和静态方法是属于这个类的, 不属于new出来的Student对象 但是可以被所有的对象所使用, 当类加载到内存,静态属性和静态方法就可以调用,这个时候没有new任何对象
使用时候: 
1、静态的方法只能访问静态的方法和静态的属性(因为当前对象的实例可以没有创建,
所以静态的方法是没办法调用非静态的方法和属性的)
2、静态的方法中不能写this、super关键字(因为当前的对象实例可能还没有创建,
代表当前类对象的this还有代表父类对象的super可能都还没有创建)
非静态的属性和方法(实例属性和方法)必须通过new对象访问,而静态的属性和方法
是属于类的,在类加载到内存中就可以访问,被所有对象所共享。

抽象类:

1、抽象方法是没有方法体,如果这个类里面有抽象方法,这个类必须变成抽象类。

2、如果这个类是抽象类,并不要求这个类一定要有抽象方法

3、抽象类里面可以有普通方法,也可以有抽象方法。

4、如果一个类是抽象类,那么这个类就不能被new实例化,只能被其他类继承。

5、抽象方法可以理解为父类(抽象类)定义的一个模板或者规范(自己本身不实现),

子类必须实现这个抽象方法。如果子类不想实现这个方法,那么这个子类也必须要变成抽象类。

类和对象的总结:

1、现实世界都是由很多对象组成的,基于对象的共同特征抽象出类。
2、对象:真实存在的对象
3、类中包含:
     1)所有对象所共有的特征-- 属性(静)
     2)所有对象所共有的行为-- 方法(动)
4、类是对象的模板,对象是类的具体实例。
5、一个类可以创建多个对象:同一个类的不同对象,结构相同,数据不同。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值