zoukankan      html  css  js  c++  java
  • Java的封装 this关键字 继承

    面向对象的三大特征
    封装  继承  多态

    封装的优点
    1、提高了代码的复用性。
    2、隐藏了实现细节,还要对外提供可以访问的方式。便于调用者的使用。这是核心之一,也可以理解为就是封装的概念。
    3、提高了安全性。

    举例
    一台电脑,它是由CPU、主板、显卡、内存、硬盘、电源等部件组长,其实我们将这些部件组装在一起就可以使用电脑了,但是发现这些部件都散落在外面,很容造成不安全因素,于是,使用机箱壳子,把这些部件都装在里面,并在机箱壳上留下一些插口,通过插口来访问
    封装关键词private

    例子

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public class Person {
        private int age;
        public int getAge() {
            return this.age;
        }
        public void setAge(int a) {
            age = a;
        }
     
    }
    public static void main(String[] args) {
            Person p = new Person();
            p.setAge(30);
            System.out.println("大家好,今年我" + p.getAge() + "岁");
     
        }

     

    类中不需要对外提供的内容都私有化,包括属性和方法。
    以后再描述事物,属性都私有化,并提供setXxx getXxx方法对其进行访问。

    this关键字
    在方法中出现了局部变量和成员变量同名时,在成员变量名前面加上this.来区别成员变量和局部变量
    例子

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    public class Person {
        private int age;
        public int getAge() {
            return this.age;
        }
        public void setAge(int age) {
            this.age = age;
        }
     
    }
    public class Text {
     
        public static void main(String[] args) {
            Person p = new Person();
            p.setAge(30);
            System.out.println("大家好,今年我" + p.getAge() + "岁");
     
        }
     
    }

    执行说明
    1、先执行main方法(压栈),执行其中的 Person p = new Person();
    2、在堆内存中开辟空间,并为其分配内存地址0x1234,紧接着成员变量默认初始化(age = 0);将内存地址0x1234赋值给栈内中的Person p 变量
    3、继续执行p.setAge(30)语句,这时会调用setAge(int age)方法,将30赋值为setAge方法中的“age”变量;执行this.age = age语句,将age变量值30 赋值给成员变量this.age为30;
    4、setAge()方法执行完毕后(弹栈),回到main()方法,执行输出语句System.out.println(),控制台打印p对象中的age年龄值。

    谁调用this代表谁

    继承
    概念:继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系
    继承的格式&使用
    class 子类 extends 父类 {}

    例子

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    class Employee {
        String name;
        public void work() {
            System.out.println("尽心尽力地工作");
        }
    }
     
    class Developer extends Employee {
        public void printName() {
            System.out.println("name=" + name);
        }
    }
     
    public class Example01 {
        public static void main(String[] args) {
            Developer d = new Developer();
            d.name = "xiaoming";
            d.printName();
            d.work();
        }
    }

     

    子类在继承父类的时候,会自动拥有父类的成员。

    继承的好处
    1、继承的出现提高了代码的复用性,提高软件开发效率。
    2、继承的出现让类与类之间产生了关系,提供了多态的前提。

    注意事项

    类只支持单继承,不允许多继承,也就是说一个类只能有一个直接父类
    多个类可以继承一个父类
    多层继承是可以的,即一个类的父类可以再去继承另外的父类

    当子父类中出现了同名成员变量时,在子类中若要访问父类中的成员变量,必须使用关键字super来完成

    方法重写

    当子类需要父类的功能,而功能主体子类有自己特有内容时,可以重写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容。

    重写要注意    方法的返回值类型 方法名 参数列表都要一样。

  • 相关阅读:
    解决硬盘分区无法挂载的问题
    Java EE学习记录(一)
    Netbeans 8.2启动参数含义及配置
    汉化CodeBlock
    linux解决无法打开资源管理器
    netbean下搭建mariadb数据库
    mariadb中执行数据库脚本的方法
    修复受损的linux引导
    修复无法启动的mariadb
    no update
  • 原文地址:https://www.cnblogs.com/mr171733/p/9867279.html
Copyright © 2011-2022 走看看