方法/函数重载
规则:方法名一致,参数不一致,与返回值无关
参数的个数不一样
参数的类型不一样
参数的顺序不一样
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();
}
}
注意
如果类不继承任何类,默认继承
Object
Java是单继承(一个类只能继承于一个类),多层继承
创建本类对象之前会先初始化父类对象
子类不能继承父类的private成员(属性,方法)
super
super
指向父类
super()
调用父类构造方法
this
this
指向当前类(子类)
this()
调用本类其他构造
方法重写/覆盖
前提条件:
继承或者实现
子父类中出现一摸一样的方法
作用:
方法升级
修饰符
访问修饰符
public
公共的
protected
受保护的,必须继承后才能访问
默认修饰符
本类或者同一个包pakage
下可以访问
private
私有的,只有本类可以访问
上面1~4 权限依次降低
非访问修饰符
static
静态
final
常量
public final int b = 10;
![final](https://i-blog.csdnimg.cn/blog_migrate/982703f7e9bf06cc42b995825b41a8b3.png)
abstract
抽象