• Java基础知识学习06-封装、继承


    封装

    概念:将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法实现对隐藏信息的操作和访问。

    特点:提高代码的复用性;

               隐藏类的实例细节,方便修改和实现;

               提高代码的安全性。

    实现步骤:修改属性的可见性------>设为private

                     创建getter/setter方法--------->用于属性的读写

                     在getter/setter方法中加入属性控制语句---------->对属性值的合法性的判断

    private修饰符

    private关键字:私有的,可修饰成员变量和成员方法

                  特点:只能在本类中访问被private修饰的成员

    代码:

    package com.oracle.demo3;
    public 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;
    }

    public boolean compare(Person p) {
    return this.age == p.age;
    }
    }

    测试代码:

    package com.oracle.demo3;
    public class TestPerson {
    public static void main(String[] args) {
    Person p1 = new Person();
    Person p2 = new Person();
    p1.setAge(18);
    p1.setName("张三");
    p2.setAge(18);
    p2.setName("李四");
    boolean flag = p1.compare(p2);
    if(flag){
    System.out.println("两个人年龄相同");
    }else{
    System.out.println("两个人年龄不相同");
    }
    }
    }

    this关键字

    this关键字代表当前对象   本类中

       this.属性   操作当前对象的属性

       this.方法   操作当前对象的方法

    成员变量和局部变量的同名问题:

    可以在成员变量名前面加上this.来区别成员变量和局部变量

    继承

     继承是类与类之间的一种关系,可以说是一种 is  a  的关系     把多个类中相同的内容提取到一个类中。

    继承的好处:

                    子类拥有父类所拥有的属性和方法;

                    实现了代码的复用。

    弊端:增强了类与类之间的耦合性。因为开发要求是高内聚低耦合的。

    语法规则: class  子类 extends 父类{}

    注意:1、Java中,类只支持单继承,不允许多继承,也就是说一个类只能有一个直接父类

          2、多个类可以继承一个父类

              3、Java中,多层继承是可以的,即一个类的父类可以再去继承另外的父类

          4、Java中,子类和父类是一种相对概念,也就是说一个类是某个类父类的同时,也可以是另一个类的子类

    继承中成员变量的特点:

    成员变量:如果子类父类中出现不同名的成员变量,这时的访问是没有任何问题。

              如果子类父类中出现了同名成员变量时,在子类中若要访问父类中的成员变量,必须使用关键字super来完成。super用来表示当前对象中包含的父类对象空间的引用。

    继承中成员方法的特点:   就近原则

         子类中的方法和父类中的方法声明是一样的;

          通过子类调用方法:先找子类中有没有这个方法,有就调用。子类中没有就看父类,有就调用。父类中还没有就再接着找,如果没有就报错。

    方法的重写

    如果子类对父类中的方法不满意可以重写父类的方法,直接在子类中去写,调用的时候会优先调用子类中的方法。

    语法规则:返回值类型、方法名、参数类型及个数都要与父类相同。

              重写的方法直接在子类中去写,然后用super关键字去调用父类中的方法。

    注意:1、父类中私有方法不能被重写,因为父类的私有方法子类根本不能去继承;

          2、子类重写父类中的方法时,访问权限不能更低;

          3、父类的静态方法,子类必须通过静态方法才能重写。

    方法的重载

    在本类中出现的方法名一样,参数列表不同的方法,与返回值无关。

  • 相关阅读:
    appium知识01-环境设置
    移动端测试基础知识02
    魔术方法和反射
    面向对象开发: 封装, 继承, 多态
    正则的用法
    内置方法, 第三方模块(math, random, pickle, json, time, os, shutil, zip, tarfile), 导入包
    推导式(列表, 集合, 字典), 生成器
    迭代器, 高阶函数(map, filter, reduce, sorted) , 递归函数
    函数globals和locals用法, LEGB原则, 闭包函数 , 匿名函数
    字符串, 列表, 元祖, 集合, 字典的相关操作和函数, 深浅copy
  • 原文地址:https://www.cnblogs.com/Java-125/p/8656298.html
Copyright © 2020-2023  润新知