第一阶段-封装,继承,抽象的梳理

从去年四月份入职,复盘这一年,技术提升基本停滞,完全淹没在无穷无尽的业务和改之不尽的bug中。重新制定学习计划,需首先对java基础进行梳理,预计在四月底完成,每周梳理一次。以前感觉时间对自己来说是不那么具象的东西,现在深深领悟到了白驹过隙。保持对技术的好奇,加油,小菜鸟。

类是java代码的基石,一个类应包含五个部分:

1、成员变量

2、成员方法

3、构造器:默认存在无参构造,当使用有参构造时,会默认覆盖无参构造,这是一个很有意思的机制

4、代码块:表达出你想做什么

5、内部类

封装

顾名思义,将东西封存装订起来,但特定的方法外露,让其他代码块可以顺利的进行调用。

封装具有的两个功能:

(1)可以提高安全性:防止其他模块调用对应的方法产生的错误影响后续的功能;

(2)组件化:外露需要的方法,当不需要时不进行暴露——即就是所谓的合理暴露

 private String userName;
    private int age;

    //类成员方法
    public static int sex = 1;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

在日常使用中,最经典的就是对象类的创建,属性私有化,对属性的操作方法进行共有化的处理

继承

1、继承是java代码很有意思的一个点,继承的规则有:

(1)单继承:即一个类只能单独的继承另外一个类,换种表达形式,一个子类只能有一个父类;

(2)多层继承:即子类有对应的父类,该父类也有自己对应的唯一的父类;

(3)继承局限性:私有方法和静态方法不能被重写——已获取,不能重写!

(4)任何类追根溯源都会有一个祖宗类Object.class

注:当子类方法重写父类的方法时,添加@Override的注解,既是标注,也是方法调用的入口

2、this和super关键字的使用:this代表的是使用当前对象的方法,super代表的是使用父类的对象

public class Children extends People {

    public String play = "pop";

    public void read() {
        String play = "sing";
        System.out.println("i like " + super.play);
        System.out.println("i like " + play);
        System.out.println("i like " + this.play);

    }

//当注掉this和super时,输出的一定是sing,这块体现的是就近原则
    public static void main(String[] args) {
        Children children = new Children();
        children.read();
    }

}

抽象

抽象类可以理解为对方法进行抽象的一种模板化工具方法,但无法根据抽象类创建具体的对象,抽象类除过不能创建对象,其它类有的,抽象类仍然具有,

抽象类的调用规则:

(1)当一个类继承抽象类时,必须重写抽象类的抽象方法;—— 当然,重写就意味着需要添加@Override的注解

                                                                                   —— 当一个类继承抽象类,却不想实现抽象类的所有方法的同时,那么这个类也只能作为抽象类 去存在

(2)抽象类中的方法不会有代码块,即无具体的逻辑执行;—— 有种规范的感觉

public class Abstract_two {

}

abstract class father{

    public abstract void run();

    public abstract void eat();

    public void test(){
        System.out.println(123);
    }

    public static void test111(){
        System.out.println(123);
    }

}


class boy extends father{
    @Override
    public void run() {

    }

    @Override
    public void eat() {

    }
}

abstract class girl extends father{}

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值