• Static关键字的作用及使用


    1、使用static声明属性

    如果希望一个属性被所有对象共同拥有,可以将其声明为static类型。

    声明为static类型的属性或方法,此属性或方法也被称为类方法,可以由类名直接调用。

    class Person{	// 定义Person类
    	String name ;		// 定义name属性,暂时不封装
    	int age ;			// 定义age属性,暂时不封装
    	static String country = "A城" ;	// 定义城市属性,有默认值,static
    	public Person(String name,int age){
    		this.name = name ;
    		this.age = age; 
    	}
    	public void info(){	// 得到信息
    		System.out.println("姓名:" + this.name + ",年龄:" + this.age + ",城市:" + country) ;
    	}
    };
    public class StaticDemo02{
    	public static void main(String args[]){
    		Person p1 = new Person("张三",30) ;	 // 实例化对象
    		Person p2 = new Person("李四",31) ;	 // 实例化对象
    		Person p3 = new Person("王五",32) ;	 // 实例化对象
    		System.out.println("--------------- 修改之前 -------------") ;
    		p1.info() ;
    		p2.info() ;
    		p3.info() ;
    		p1.country = "B城" ;		// 修改static属性
    		System.out.println("--------------- 修改之后 -------------") ;
    		p1.info() ;
    		p2.info() ;
    		p3.info() ;
    	}
    };



    Person.country = "B城" ;

    2、声明static方法

    如果一个方法使用了static关键字声明,此方法可以直接使用类名进行调用。

    注意:使用static方法,不能调用非static的属性或方法。

    因为:static属性或方法,可以在对象没有实例化的时候就直接进行调用了。

    class Person{	// 定义Person类
    	private String name ;		// 定义name属性,暂时不封装
    	private int age ;			// 定义age属性,暂时不封装
    	private static String country = "A城" ;	// 定义城市属性,有默认值,static
    	public static void setCountry(String c){ // 此方法可以直接由类名称调用
    		country = c ;
    	}
    	public static String getCountry(){
    		return country ;
    	}
    	public Person(String name,int age){
    		this.name = name ;
    		this.age = age; 
    	}
    	public void info(){	// 得到信息
    		System.out.println("姓名:" + this.name + ",年龄:" + this.age + ",城市:" + country) ;
    	}
    };
    public class StaticDemo04{
    	public static void main(String args[]){
    		Person p1 = new Person("张三",30) ;	 // 实例化对象
    		Person p2 = new Person("李四",31) ;	 // 实例化对象
    		Person p3 = new Person("王五",32) ;	 // 实例化对象
    		System.out.println("--------------- 修改之前 -------------") ;
    		p1.info() ;
    		p2.info() ;
    		p3.info() ;
    		Person.setCountry("B城") ;		// 调用静态方法修改static属性的内容
    		System.out.println("--------------- 修改之后 -------------") ;
    		p1.info() ;
    		p2.info() ;
    		p3.info() ;
    	}
    };
  • 相关阅读:
    爱的感悟
    连点成图:享受创建图形的乐趣
    python实现动态更新远程机器列表的SSH登录脚本
    python生成数据库中所有表的DESC描述
    生活之美
    克服“测试怠惰”的习惯
    使用git和github托管个人项目
    连点成线
    一次合并数据库的经历
    python使用装饰器捕获异常
  • 原文地址:https://www.cnblogs.com/pangblog/p/3306201.html
Copyright © 2020-2023  润新知