前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Java自动化测试(封装和继承 预习5)

Java自动化测试(封装和继承 预习5)

作者头像
zx钟
发布2020-06-19 11:02:56
发布2020-06-19 11:02:56
46100
代码可运行
举报
文章被收录于专栏:测试游记测试游记
运行总次数:0
代码可运行

方法/函数重载

规则:方法名一致,参数不一致,与返回值无关

  1. 参数的个数不一样
  2. 参数的类型不一样
  3. 参数的顺序不一样
代码语言:javascript
代码运行次数:0
复制
package com.zhongxin.method;

public class Student {
    public void add(int a, int b) {
        System.out.println(a + b);
    }

    public void add(int a) {
        System.out.println(a);
    }

    public void add(int a, double b) {
        System.out.println(a + b);
    }

    public void add(double a, double b) {
        System.out.println(a + b);
    }
}
代码语言:javascript
代码运行次数:0
复制
package com.zhongxin.method;

public class Test {
    public static void main(String[] args) {
        Student s = new Student();
        s.add(4, 3);
        s.add(4);
        s.add(4,3.0);
        s.add(4.0, 3.0);
    }
}

java内存

java内存包含了:

  • 方法区
  • 寄存器

  • 先进后出
  • 局部变量,方法都在栈中

  • new出来的对象在堆

封装

通过函数的形式将一些代码细节包装起来,防止外部代码的随机访问。

要访问这些数据就必须通过调用函数来完成。

好处:

  • 提高了代码的可读性
  • 提高了代码的可维护性
代码语言:javascript
代码运行次数:0
复制
package com.zhongxin.method;

public class Phone {
    private int size;

    public int getSize() {
        return size;
    }

    public void setSize(int size) {
        if (size < 1 || size > 10) {
            System.out.println("size设置失败");
        } else {
            this.size = size;
        }
    }
}
代码语言:javascript
代码运行次数:0
复制
package com.zhongxin.method;

public class Test2 {
    public static void main(String[] args) {
        Phone p = new Phone();
        p.setSize(-2);
        int size = p.getSize();
        System.out.println(size);
    }
}

继承

两个类之间通过extends关键字来描述父子关系,子类可以拥有父类的公共方法和公共属性。

  • 提高了代码的复用性
  • 代码的维护性更高

语法:

代码语言:javascript
代码运行次数:0
复制
public class 父类{

}
public class 子类 extends 父类{

}

父类Phone

代码语言:javascript
代码运行次数:0
复制
package com.zhongxin.extend;

public class Phone {
    private int size;
    private String brand;
    public String color;

    public int getSize() {
        return size;
    }

    public void setSize(int size) {
        this.size = size;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public void call(){
        System.out.println("打电话");
    }

    public void show() {
        System.out.println("show...");
    }
}

子类Phone4S

代码语言:javascript
代码运行次数:0
复制
package com.zhongxin.extend;

public class Phone4S extends Phone {
    public void siri() {
        System.out.println("你好");
    }
}

使用

代码语言:javascript
代码运行次数:0
复制
package com.zhongxin.extend;

public class Test {
    public static void main(String[] args) {
        Phone p = new Phone();
        Phone4S p4 = new Phone4S();
        p.call();
        p4.call();
        p4.siri();
    }
}

注意

  1. 如果类不继承任何类,默认继承Object
  2. Java是单继承(一个类只能继承于一个类),多层继承
  3. 创建本类对象之前会先初始化父类对象
  4. 子类不能继承父类的private成员(属性,方法) super

super指向父类

super()调用父类构造方法

this

this指向当前类(子类)

this()调用本类其他构造

方法重写/覆盖

前提条件:

  • 继承或者实现

子父类中出现一摸一样的方法

作用:

  • 方法升级

修饰符

访问修饰符

  1. public

公共的

  1. protected

受保护的,必须继承后才能访问

  1. 默认修饰符

本类或者同一个包pakage下可以访问

  1. private

私有的,只有本类可以访问

上面1~4 权限依次降低

非访问修饰符

  • static

静态

  • final

常量

代码语言:javascript
代码运行次数:0
复制
public final int b = 10;

final

  • abstract

抽象

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试游记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 方法/函数重载
  • java内存
  • 封装
  • 继承
    • 注意
      • this
  • 方法重写/覆盖
  • 修饰符
    • 访问修饰符
    • 非访问修饰符
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档