成员变量
类中定义的变量,例如:
public String name;
,public int age;
构造方法
- 创建一个实例时,会调用的方法,一般用来初始化
public class Person {
private String name;
private int age;
//这就是一个构造方法,当创建一个实例化对象时,person p = new person("姚明",21),会调用构造函数
public Person(String name, int age){
this.name = name;
this.age = age;
}
}
- 构造函数缺省时,编译器会自动加上默认构造函数
public class Person {
private String name;
private int age;
//默认构造函数如下,无参数,无代码块
// public Person(){}
}
- 存在的问题
构造函数有返回值吗?
方法
普通定义
public String getName(){
return name;
}
静态字段与静态方法
- 使用static修饰
public static int count; // 这是一个静态字段
public static void getCount(){}; // 这是一个静态方法
- 静态方法属于类,不属于对象,可以通过类调用,也可以通过对象调用(不推荐)
class Person{
public static count;
public static void getCount(){
System.out.println(count);
}
}
Person.count; // 调用姿态字段
Person.getCount(); // 调用静态方法
方法重载
- 返回值相同,方法名相同,只有参数不相同
int test(int n){}
int test(String s){}
int test(int n String s){}
- 一个类中可以有多个方法的重载,功能类似(这是方法重载最大的目的)
- 同样一个类内可以存在多个重载的构造函数,根据new Person()时传参的不同,调用不同的构造函数。
class person{
public String name;
public int age;
public Person() {...}
public Person(String name) {...}
public Person(String name,int age) {...}
}
- 存在的问题
返回值是最好的相同还是必须相同。修饰符需要相同吗?
方法覆写
- 返回值,函数签名(方法名,参数)都完全相同,
- 多用于继承的子类的中
@Override
可以让编译器帮助检查是否进行了正确的覆写,但不是必须有的。
class Person{
public int test(){
System.out.println("这是一个例子");
}
}
class Student extends Person{
@Override
public int test(){
System.out.println("这是一个覆写");
}
}