Java实训之Static

package Static;

import javax.swing.plaf.synth.SynthSeparatorUI;

/*
 * static 静态的,可以修饰属性(类变量),还可以修饰方法,还可修饰代码块
 * 1.由类创建的所有对象,都共享这个属性
 * 2.如果其中一个对象的属性值发生了改变,会导致其他对象属性值跟着改变
 * 3.static属性与对象创建无关,随着类的加载而加载,即随着class文件加载
 * 4.静态变量可以直接通过   类名.类变量  的方式调用
 * 5.类变量存在静态域中,对象变量在堆中
 * 6.类变量的加载要早于对象,因为其已经加载,故可共享
 * 7.实例变量随着对象创建而加载
 * 
 * static修饰方法(类方法)
 * 1.随着类加载而加载
 * 2.可以直接通过  类名.方法名   的方式调用
 * 3.方法内部只能调用静态方法或静态属性,不能调用非静态方法和属性
 * 
 */
public class SportsMan {
	private String name;//实例变量,对象变量
	private int age;
	protected static String country;//加上static后,该属性不再属于对象而是属于类本身
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getCountry() {
		return country;
	}
	public void setCountry(String country) {
		this.country = country;
	}
	@Override
	public String toString() {
		return "SportsMan [name=" + name + ", age=" + age + ", country=" + country + "]";
	}
	public SportsMan(String name, int age, String country) {
		super();
		this.name = name;
		this.age = age;
		this.country = country;
	}
	public SportsMan(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
	public void show() {
		System.out.println("这是一个普通方法");
	}
	public static void show1() {
		System.out.println("这是一个静态方法");
	}
	
	

}

package Static;

public class TestSportsMan {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SportsMan.country="中国";
		SportsMan s1=new SportsMan("彭祥",22);
		s1.setCountry("中国");
		System.out.println(s1);
		SportsMan s2=new SportsMan("彭祥",22);
		System.out.println(s2);
		s1.show();
		SportsMan.show1();

	}

}

发布了58 篇原创文章 · 获赞 145 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/pengxiang1998/article/details/103908233