zoukankan      html  css  js  c++  java
  • 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() ;
    	}
    };
  • 相关阅读:
    hdu 5053 the Sum of Cube
    [LeetCode] Word Pattern
    [LeetCode] Minimum Depth of Binary Tree
    [C++] std::vector
    [LeetCode] Count Binary Substrings
    [LeetCode] Degree of an Array
    [LeetCode] String to Integer (atoi)
    [LintCode] 比较字符串
    [LeetCode] Valid Parentheses
    [LeetCode] Perfect Number
  • 原文地址:https://www.cnblogs.com/pangblog/p/3306201.html
Copyright © 2011-2022 走看看