第7章-面向对象高级实现.pptx
文本预览下载声明
内蒙古师范大学数学科学学院;;静态修饰符-static;static机制;;class Sample1 {
public static int number; //定义一个静态变量
public void method() {
int x = number; //在类的内部直接访问number静态变量
}
}
class Sample2 {
public void method() {
int x = Sample1.number; //通过Sample1类名来访问number静态变量。
}
}
;public class Monkey{
String name; //实例变量
static int count; //静态变量
public Monkey(String name){
this.name=name;
count++;
}
public void speak(){
System.out.println(大家好,我是+name); //合法,允许访问name实例变量
System.out.println(目前共有+count+个猴子); //合法,允许访问count静态变量
}
public static void main(String args[]){
Monkey m1=new Monkey(智多星);
Monkey m2=new Monkey(小不点);
m1.speak();
m2.speak();
}
}
;Java语言中没有全局变量的概念,静态变量从某种意义上来说相当于其他程序设计语言中的全局变量
静态变量是唯一为类中所有对象共享的变量
如果一个静态变量同时还被定义为public类型,那么其他类也同样可以使用这一变量,引用这一变量时甚至无须生成一个该类的对象,而是直接利用类名即可指向它 ;静态方法;静态方法可以访问的内容;package mypack;
public class Monkey{
String name; //实例变量
static int count; //静态变量
public Monkey(String name){
this.name=name;
count++;
}
public static void speak(){
//System.out.println(大家好,我是+name); //非法,不允许访问name实例变量
System.out.println(目前共有+count+个猴子); //合法,可以访问count静态变量
}
}
;实例方法可访问的内容;public class Monkey{
String name; //实例变量
static int count; //静态变量
public Monkey(String name){
this.name=name;
count++;
}
public void speak(){
System.out.println(大家好,我是+name); //合法,允许访问name实例变量
System.out.println(目前共有+count+个猴子); //合法,允许访问count静态变量
}
public static void main(String args[]){
Monkey m1=new Monkey(智多星);
Monkey m2=new Monkey(小不点);
m1.speak();
m2.speak();
}
}
;引用变量m1;静态方法使用注意;public class Tester{
int x;
void method(){}
public static void main(String args[]) {
//x = 9; // 编译错误
//this.x=9; // 编译错误
//method(); // 编译错误
//this.method(); //编译错误
Tester t=new Tester();
t.x = 9; // 合法
t.method();// 合法
}
};static代码块;public class Sample{
static int i = 5;
static { //第一个静态代码块
System.out.pri
显示全部