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

方法/函数重载

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

  1. 参数的个数不一样

  2. 参数的类型不一样

  3. 参数的顺序不一样

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);
    }
}
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出来的对象在堆

封装

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

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

好处:

  • 提高了代码的可读性

  • 提高了代码的可维护性

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;
        }
    }
}
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关键字来描述父子关系,子类可以拥有父类的公共方法和公共属性。

  • 提高了代码的复用性

  • 代码的维护性更高

语法:

public class 父类{

}
public class 子类 extends 父类{

}

父类Phone

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

package com.zhongxin.extend;

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

使用

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

常量

public final int b = 10;
final
  • abstract

抽象

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值