方法的格式
修饰符 返回值类型 方法名(参数类型 参数名 1,参数类型 参数名 2…) {
函数体;
return 返回值;
}
方法调用的三种方式
方式1:单独调用
sum(x,y);
方式2:输出调用
System.out.println(sum(x,y));
System.out.println(30);
方式3:赋值调用
int result = sum(x,y);
result在这里可以进行操作
System.out.println(result);
ex. public static void int sum(int a,int b){
}
方法的注意事项:
A:方法不调用不执行
B:方法与方法是平级关系,不能嵌套定义
C:方法定义的时候参数之间用逗号隔开
D:方法调用的时候不用在传递数据类型
E:如果方法有明确的返回值,一定要有return带回一个值
方法重载:
在同一个类中,方法名相同,参数列表不同。与返回值类型无关。
方法重写
子类中出现了和父类中一模一样的方法声明,也被称为方
法覆盖,方法复写。父类中私有方法不能被重写
面向对象:::成员变量--属性 成员方法行为。
创建对象:
类名 对象名 = new 类名();
构造方法:构建创造对象时调用的方法。作用:可以给对象进行初始化。
在描述事物时,该事物一存在就具备的一些内容,这些内容都定义在构造方法中
构造方法可以有多个,用于对不同的对象进行针对性的初始化.
多个构造方法在类中是以重载的形式来体现的。
构造方法格式
方法名与类名相同
没有返回值类型,连void都没有
没有具体的返回值
ex. Person(){//无参
age=1;
}
Person (String pname){//有参,从生来就存在
name=pname;
}
只有继承时在构造方法中才可以用this.参数
哪个对象调用了 this 所在的函数,this 就代表哪个对象。并且this只能定义在构造函数的第一行。
继承 class 子类名 extends 父类名 {}
继承有:
单继承:一个子类只能有一个直接父类。
多继承:一个子类可以有多个直接父类。
this:代表一个本类对象的引用。
super:代表一个父类空间。并且super只能定义在第一行
多态前提和体现:
有继承关系
有方法重写
有父类引用指向子类对象
向上转型
从子到父
父类引用指向子类对象
ex. 动物 d = new 猫();
or 用一个方法,调用
向下转型
从父到子
父类引用转为子类对象
ex. if (animal instanceof Dog) {
final Dog dog = (Dog) animal;
dog.kanMen();
}
抽象类和抽象方法必须用abstract关键字修饰
格式
abstract class 类名 {}
public abstract void eat();
抽象类不一定有抽象方法,有抽象方法的类一定是抽象类
抽象类不能实例化
那么,抽象类如何实例化呢?
按照多态的方式,由具体的子类实例化。其实这也是多态的一种,
抽象类多态。
抽象类的子类
要么是抽象类
要么重写抽象类中的所有抽象方法
接口用关键字interface表示
格式:interface 接口名 {}
类实现接口用implements表示
格式:class 类名 implements 接口名 {}
接口不能实例化
那么,接口如何实例化呢?
按照多态的方式,由具体的子类实例化。其实这也是多态的一种,
接口多态。
接口的子类
要么是抽象类
要么重写接口中的所有抽象方法
成员变量
只能是常量
默认修饰符 public static final