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() ;
    	}
    };
  • 相关阅读:
    Linux网络检测手段汇总
    Hadoop单机搭建
    Nginx之Location模块
    关于STM32驱动DS1302实时时钟的一点思考
    灵感手环第一步——0.96寸OLED显示实验
    把简单做到极致
    KEIL MDK 查看代码量、RAM使用情况--RO-data、RW-data、ZI-data
    关于SPI通信原理与程序实现
    【转载】keil5中加入STM32F10X_HD,USE_STDPERIPH_DRIVER的原因
    关于keil5使用注意事项(预定义、路径包含)
  • 原文地址:https://www.cnblogs.com/pangblog/p/3306201.html
Copyright © 2011-2022 走看看