一、静态成员的两种调用。
1. 对象.成员变量 = 值;
例:stu1 . name = "java";
2.类名.成员方式; // 不需要new就可以直接用这种方式调用,调用方法也可以(Student . getNum())
例:Student .count++;
注:
静态方法只能访问静态变量,static只能访问static。
非静态方法既能访问静态变量又能访问非静态变量。
例1:class Student{
static int count;
public int getNum(){ //非静态方法既可以调用静态变量也可以调用非静态变量
count++;
return count;
}
}
主程序调用必须先new出一个对象才可以调用(因为getNum()方法是非静态的 所以它就不是共享的,要new出对象,用对象才可以调用)
Student stu1 = new Student();
int count1 = stu1.getNum();
例2:class Student{
static int count;
public static int getNum(){
count++;
return count;
}
}
主程序调用 int count2 = Student.getNum();
二、静态块。
static{
}
静态块只能加载并运行一次,最先执行。
例:class Student{
public static int count;
static{
count++;
}
public void studentNum(){
System.out.println(count);
}
}
主程序调用:new Student().studentNum(); // 1
new Student().studentNum(); // 1
三、封装。
1.封装代码的功能:
只对外界提供一个名字,让外界能访问这些属性或者功能。
2. 例:银行的安全
class creditCard{
private double salary; // 外界访问不到salary,封装了
public double getSalary(){
return salary;
}
public void setSalary(double sal){
if(sal <= 0){
return 0.0;
}else{
salary = sal;
}
return salary;
}
}
public class money{
public static void main(String[] args){
creditCard cc = new creditCard();
cc.setSalary(100000000);
double salary = cc.getSalary();
}
}
注:private 私有,只有自己拥有,外界访问不到。