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() ;
    	}
    };
  • 相关阅读:
    一部感天动地的自学编码之旅
    c++初学
    imooc-c++学习感悟
    第二次实践作业
    大一下学期的自我目标(要求包含对大一上学期的总结、对面向对象课程完成后学习到的能力的预期,对面向对象课程的期望、对编程和专业能力的愿景规划)
    面向对象程序设计 ——第二次作业(2)
    面向对象程序设计 ——第二次作业(1)
    面向对象程序设计 ——第一次作业
    面对对象程序设计第二次作业2
    面对对象程序设计第二次作业
  • 原文地址:https://www.cnblogs.com/pangblog/p/3306201.html
Copyright © 2011-2022 走看看