第一节 封装

生活中的封装: 电视机,空调,ATM机

1.1 什么是封装

​ 封装,即隐藏对象属性和实现细节,仅对外公开接口(方法/函数),控制在程序中属性的读和修改访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中属性数据和函数都是类的成员。

​ 封装的目的:是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员。

1.2 java中的封装

广义来说:一切公共代码的抽取都可以叫封装。

​ 一般体现在公共方法的封装。工具类。

狭义来说:隐藏对象的属性和实现细节。

  1. 将属性私有化 ,使用private关键字修饰。
  1. 为使用private关键字修饰的属性添加 getter和setter方法。通过get和set方法来操作属性。
  1. 在setter方法中,添加数据的逻辑校验。

[权限修饰符] class 子类名 extends 父类名{}

​public class Student {    
    //属性封装:1.属性私有化 2.添加getter setter方法 3.在setter方法中进行数据校验        
    //姓名
    private String name;    
    //性别
    private  String sex;    
    //年龄
    private int age;        

    public void show(){    
        System.out.println(this.name+" "+this.sex+" "+this.age);  
    }​    

    //生成getter setter    
    public String getName() {
        return name;    
    }​    

    public void setName(String name) {
        this.name = name;    
    }​

    public String getSex() {
        return sex;    
    }​    

    public void setSex(String sex) {
        //在setter方法中对数据进行校验
        if(sex.equals("男")||sex.equals("女")){
            this.sex = sex;
        }else{
            System.out.println("性别无效");
        }
    }​    

    public int getAge() {
        return age;    
    }​    

    public void setAge(int age) {
        if(age>0 && age<120){
            this.age = age;        
        }else{
            System.out.println("年龄超出范围");
        }
    }
}


//测试方法
​public class Test {
​    public static void main(String[] args) {
        Student s=new Student();
        s.setName("张三");
        s.setSex("石头");
        s.setAge(-20);
        s.show();
    }
}

1.3 封装的作用

保护属性的有效性。

第二节 继承

2.1 什么是继承

继承面向对象软件技术当中的一个概念,与多态封装共称为面向对象的三个基本特征。继承可以使得子类具有父类的非私有属性方法或者可以重新定义、追加属性和方法等。

继承(英语:inheritance)。这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的属性和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

如果某类B“继承”另某类A,就把这个B称为“A的子类派生类(subclass)”,而把类A称为“B的父类”也可以称为“A是B的超类基类(superclass)”。

2.2 为什么需要继承

提升代码的可重用性

  • 子类通过继承可以得到父类有的内容

能够扩展功能

  • 通过继承,子类可以扩展父类已有的功能

方便维护

  • 多个子类都继承了父类的某个功能,当功能需要修改时,只要修改父类的这个功能即可

使用面向对象思想编程的时候,需要考虑的两个方面:

​ 1.功能实现了没有?

​ 2.后期维护方便吗?

2.3 继承的语法格式

java语言是单继承的,java类只能由一个父类。

继承的语句格式:

[权限修饰符] class 子类名 extends 父类名{}

// 定义父类

public class Father {

  // 父亲有500w元

  int money = 5000000;

​

  public void liveHouse(){

      System.out.println("住80年代老房子");

  }

}


// 定义子类

public class Son extends Father{

}

​

public class Test {

  public static void main(String[] args) {

      Son son = new Son();

      System.out.println("儿子有:"+son.money+"元");

      son.liveHouse();

  }

}

儿子有:5000000元

住80年代老房子

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐