方法的重写:
当我们两个类之间存在继承关系,子类觉得父类的某个方法不好用,可以通过重写来实现调用方法的时候自己控制,条件是方法名、参数、返回值必须一模一样,方法体不一样。
方法的重载:
同一个类当中,方法名相同,返回值相同,参数不同(类型,个数,顺序),就叫方法的重载
public void gongji(int num1) {
System.out.println("一个整数");
}
public void gongji(String num1) {
System.out.println("一个字符串");
}
public void gongji(int num1 ,int num2){
System.out.println("两个整数");
}
public void gongji(String num1, int num2) {
System.out.println("一个字符串,一个整数");
}
public void gongji(int num1, String num2){
System.out.println("一个整数,一个字符串");
}
static关键字: (静态的)
可以修饰代码块、方法、属性
修饰方法:
public static void ziliaoshu() {
System.out.println("一下回50%");
}
staitc方法的调用方式就是类名.方法名(), 而不需要取创建对象了,
普通方法方法调用方式,创建对象, 对象名.方法名();使用static会大量消耗内存,所以我们不推荐方法使用static, 但是有些方法我们使用static可以提升效率。
频繁调用的方法就用staitc修饰,
static修饰属性:
private static int mp;
注意:在java虚拟机中,只要是static修饰的属性和方法,就一定会先分配内存空间,即使代码不执行,我们static修饰的属性和方法也会常驻内存,
static修饰的属性和方法永远只有独一份,和对象无关,
static叫做类数据,和对象无关。
非static叫对象,和类无关
访问规则:
/**
* 非静态方法可以访问静态变量和非静态变量
*/
public void showInfo() {
System.out.println(this.num3);
System.out.println(this.num2);
}
/**
* 静态方法不能出现this关键,静态方法加载在创建对象之前
* 静态方法就不能访问非静态变量
*/
public static void showInfo2() {
System.out.println(num3);
System.out.println(num2);
System.out.println(Audi.num2);
}
thinaking in java 表示静态变量不建议使用对象名,对象名访问,而使用类名访问,
所以我们设计有一个原则,一般staitc的属性或者方法都是public的。
代码块: {}
类{
代码块
方法
属性
构造器
}
父类静态代码块,父类静态变量,父类静态方法, 子类静态代码块 ,子类静态变量,子类静态方法
父类代码块,父类构造器 子类代码块,子类构造器
java的 this关键字:指代当前对象的引用
java的super关键字; 指代当前对象父类的引用
public Audi() {
//调用父类构造器
super();
//调用父类有参构造器
super(1);
super.showInfo();
super.num = 10;
System.out.println("子类构造器。。。。");
this.num2 = 200;
this.num3 = 300;
}
所以super就是一个父类的对象,对象能调方法,属性,super都可以
super和this调用构造器必须在代码的第一行
final关键字: 永久的,长久的
final是可以修饰类,方法,属性
final修饰类,表示类不能被继承,可以防止方法被重写
package demo_final;
public final class Car {
}
final修饰方法:表示方法不能被重写
public class Car {
public final void info(){
}
}
final修变量,表示值不能被修改,就是常量的意思
//常量
private final String word = “你好”;