方法/函數重載
規則:方法名一致,參數不一致,與返回值無關
參數的個數不一樣
參數的類型不一樣
參數的順序不一樣
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;
abstract
抽象