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() ;
    	}
    };
  • 相关阅读:
    Borladn传奇终结巨人倒下了
    C#数据导出到excel
    ADO.NET Entity Framework学习笔记(4)ObjectQuery对象
    ADO.NET Entity Framework学习笔记(3)ObjectContext对象[转]
    在Vista,WIN2K8下IE7.0就不能正常访问asp.net development server解决办法
    获取SQL Server表字段的各种属性
    白话说.net事件和委托
    Ado.Net Entity : Object doesn’t display linked members (foreign keys)
    移动飞信WEB发送服务接口
    asp.net FormsAuthentication 认证
  • 原文地址:https://www.cnblogs.com/pangblog/p/3306201.html
Copyright © 2011-2022 走看看