美文网首页
2020-05-22

2020-05-22

作者: 人生如戏丢雷楼目 | 来源:发表于2020-05-22 20:23 被阅读0次

关于静态变量

book类
public class Book {
private String title;//全局变量
private int pageNum;
private String type;
//所有书本总数
public static int sum;//静态变量
//public int sum;
public static void dayin() {  //静态方法可通过类名直接访问
    //pageNum=12;
    sum=31;
    System.out.println("所有书本共"+sum);
}

public Book(String title, int pageNum) {
    super();
    this.title = title;
    setPageNum(pageNum);
    this.pageNum = pageNum;
    this.type="计算机";
}

public Book(String title, int pageNum, String type) {
    this.title = title;
    this.pageNum = pageNum;
    this.type = type;
}

public String getTitle() {
    return title;
}
public void setTitle(String title) {
    this.title = title;
}
public int getPageNum() {
    return pageNum;
}
public void setPageNum(int pageNum) {
    if(pageNum<200) {
        this.pageNum = pageNum;
    }else {
        this.pageNum=pageNum;
    }
}
public String getType() {
    return type;
}
public void setType(String type) {
    this.type = type;
}
@Override
public String toString() {
    return "Book [title=" + title + ", pageNum=" + pageNum + ", type=" + type + "]";
}
public void detail() {
    System.out.println(toString());
}
}

测试类
 public class BookText {
public static void main(String[] args) {
//  Book b1 = new Book();
//  b1.setPageNum(123);
//  b1.setTitle("红楼梦");
//  b1.detail();
    Book b1 = new Book("红楼梦",100);
    b1.sum=5;
    b1.detail();
    

    
    Book b2 = new Book("细节",123,"都市现代");
    b2.sum=12;
    b2.detail();
    
    System.out.println("调用书本总数"+b1.sum);
    System.out.println("调用书本总数"+b2.sum);
    System.out.println("book直接调用"+Book.sum);
    /*
     * 改为静态变量后,sum的数就为共同的,如果数据改变,就一起变
     */
    b1.dayin();
    b2.dayin();
    Book.dayin();//静态方法可通过类名直接访问
}

}

静态关键字
静态变量:在成员变量前加static关键字,可以将声明为静态成员变量
静态方法:工具类中会使用静态方法
静态块:假设淘宝从开到关闭,只需要链接一次数据库服务器就够了,什么样的代码在程序起动到关闭之间无论创建多少个对象只调用一次


静态变量

静态变量的特点:
1:如果类中成员变量被定义为静态,那么无论有多少变量,静态成员变量只有一份内存拷贝,就是说:所有对象共享该成员变量
2:静态成员变量的作用域只在类内部,但其生命周期却贯穿整个程序
3:由于静态变量是属于全系统的变量,所以有些情况可以直接赋值
4:由于改为静态变量后,sum的数就为共同的,如果数据改变,就一起变

没使用静态变量前.png
用了静态变量后.png
静态变量赋值、.png

静态方法

静态方法.png

静态方法特点
1:非静态变量不能在静态方法中调用
2:静态方法可直接使用类名访问

调用2.png

静态块

特点:
1: 静态块在程序第一次使用的时候默认被调用
2:无论创建多少对象静态块只能被调用一次
3:静态块只能调用静态变量的值,非静态变量无法被调用

第一步.png 第二步.png

相关文章

网友评论

      本文标题:2020-05-22

      本文链接:https://www.haomeiwen.com/subject/ubpcahtx.html