package net.csdn.statickeywords;
/** author @彦舜 */
//这个类用来测试static关键字的用法:定义属性
public class ExampleTninetyOne {
public static void main(String[] args) {
//深层次原因:底层中,内存中,static属性保存在全局数据区
Book.pub = "static不受实例对象控制,位于内存中的全局数据区,可以在主程序中由抽象模板类直接调用,修改/使用"; //貌似抽象模板类,也只有在此情况下,可以在主程序中不经过对象,直接使用
//创建抽象模板类Book实例化对象,测试与使用类
Book b = new Book("少立志", 999999.999);
Book bo = new Book("Java开发", 10000.00);
Book boo = new Book("MySQL开发", 42342.24);
//修改公共属性的内容
bo.pub = "彦舜出版社";
//利用static定义的属性是可以由类名称直接调用的,仅仅简单地由一个对象去修改static属性不科学
Book.pub = "XXXXX";
System.out.println(b.getInfo());
System.out.println(bo.getInfo());
System.out.println(boo.getInfo());
b.pub = "姚瑾瑜出版社";
System.out.println(b.getInfo());
System.out.println(bo.getInfo());
System.out.println(boo.getInfo());
}
}
//创建抽象模板类:描述的是同一个出版社的信息
class Book{
private String title; //普通属性
private double price; //普通属性
static String pub = "清华大学出版社";
//修改与获取封装属性方式之一:创建构造方法,功能类似于getInfo()方法
public Book(String title, double price) {
title = title;
this.title = title;
this.price = price;
}
//setter\getter略,获取封装信息方式之一:getInfo()方法
public String getInfo() {
return "图书名称:" + this.title + ";价格:" + this.price + ";出版社:" + this.pub;
}
}
拓展:
package net.csdn.property;
/** author @彦舜 */
//这个类用来测试static的用法:定义属性
public class PaternTninetyTwo {
public static void main(String[] args) {
//在没有实例化对象的情况下直接输出属性内容
System.out.println(Love.love);
Love.love = "不爱"; //修改static属性内容
//创建抽象模板类Love实例化对象
Love l = new Love("爱情", 0000.0);
}
}
//创建抽象模板类
class Love{
private String s;
private double d;
static String love = "爱";
public Love(String s, double d) {
// s = s;
// d = d;
this.d = d;
this.s = s;
System.out.println("人生命题:" + this.s + love + ";价值:" + this.d);
}
}
注脚:可直接将代码复制粘贴入开发工具中,查看与学习,更详尽直观。亦可直接跟着敲。
彦舜,绝对原创