构造方法
不能有任何返回值、包括void;方法名与类名相同;【默认生成无参无方法体无返回值的构造方法;自己定义构造方法便不再默认生成;生成一个类对象只能调用一个构造方法】
每实例化一个新的对象,必须调用该对象的构造方法
this
非静态方法默认都含有一个this指针;this代表当前正在调用该方法的对象
public class Student {
public String name;
public String sex;
public int age;
// 无参构造方法
public Student() {
age = 0;
name = "****";
}
// 有参构造方法
public Student(String name, String sex, int age) {
// 只能在构造方法中使用!!!--->调用构造方法
this();
// this 锁定当前调用该方法的对象
this.name = name;
this.sex = sex;
this.age = age;
}
}
方法的重载
在同一个类中,同名不同参数【返回值不能作为构成函数重载的依据】
public class Arithmetic {
// 方法的重载
public int add(int num1, int num2) {
return num1 + num2;
}
public int add(int num1, int num2, int num3) {
return num1 + num2 + num3;
}
public double add(double num1, double num2) {
return num1 + num2;
}
}
static
凡是static修饰的都是静态成员、静态成员属于类本身;非静态的可以访问静态的、静态的不可以直接访问非静态的;通过类名只能访问一个类中的非私有静态成员、私有静态成员也不可以通过对象名访问
第一次加载类时,初始化静态变量,静态成员变量会一直到应用程序结束才被系统销毁
public class Student {
public int id;
public String name;
public static int num;
public static void show() {
//静态的可以访问静态的
System.out.println(num);
//静态的不可以访问非静态的
// System.out.println(name); // error
}
// 非静态的可以访问静态的
public void f(){
id = 0 ;
name = "墨渐生微";
num++;
}
}
final
修饰类->该类不能被继承;修饰方法->该方法可以被继承但是不能被重写;修饰属性->表示该属性能且只能被赋一次值【1.定义的同时初始化 2.构造函数中初始化】
// 定义PI为3.1415926常量,不可更改
public static final double PI = 3.1515926 ;
封装
把对象的属性和方法组合在一起,统一提供对外访问的权限,封装可以将对象的使用者和设计者分开
public class Student {
// 1.属性私有化
private String name;
private String sex;
private int age;
// 2.提供公有方法进行操作
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
// 3.控制语句
if (sex.equals("男") || sex.equals("女")) {
this.sex = sex;
}
}
public int getAge() {
return age;
}
public void setAge(int age) {
// 3. 控制语句
if (age >= 0 || age <= 120) {
this.age = age;
}
}
}