static相关介绍

各个参数的含义
public static void main(String args[]) 
    以上的各个参数的含义如下: 
        · public:表示公共的内容,可以被所有操作所调用
        · static:表示方法是静态的,可以由类名称直接调用。java StaticDemo09 
        · void:表示没有任何的返回值操作 
        · main:系统规定好的方法名称。如果main写错了或没有,会报错:NoSuchMethodError: main 
        · String[] args:字符串数组,接收参数的 

static概述

static表示“静态”的意思,可以用来修饰成员变量和成员方法
static的主要作用在于创建独立于具体对象的域变量或者方法。

简单理解:
被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。 并且不会因为对象的多次创建 而在内存中建立多份数据

static关键字修饰的成员有如下特点

1.随着类的加载而加载

static修饰的部分会在类加载时,就进行初始化。static修饰的变量和方法存放在方法区,后面根据需要再次赋的值只会不断更替,最终存储最后一次修改的结果。

2.优先于对象而存在

被static修饰的变量和方法是优先于对象存在的,也就是当一个类加载完毕后,即便没有创建对象,也可以去访问。

3.被所有对象共享

因为随着类在方法区中加载,static关键字修饰的成员也同时被加载,这时再根据类创建若干对象时,被static关键字修饰的成员只加载一次,所以是被所有对象共享的。

4.可以使用类名直接调用

静态方法可以使用类名直接调用,静态变量可以使用类名进行修改,也可以使用对象引用进行修改,方法区中存储的永远只有最后一次修改的结果,中间修改的结果不会被存储!

重点:

  1. 静态成员 在类加载时加载并初始化。
  2. 无论一个类存在多少个对象 , 静态的属性, 永远在内存中只有一份( 可以理解为所有对象公用 )
  3. 在访问时: 静态不能访问非静态 , 非静态可以访问静态 !
任务:描述学员。
具有属性: 姓名,年龄,性别,爱好,公司(都是:开课吧),学科(都是:Java学科)。
思考:请结合static修饰属性进行更好的类设计。
public class Demo03 {
	public static void main(String[] args) {
		Employee e1 = new Employee("依依",19,"女","弹琴");
		Employee e2 = new Employee("尔尔",23,"男","下棋");
		Employee e3 = new Employee("伞伞",18,"女","书法");
		Employee e4 = new Employee("司思",21,"男","绘画");
		Employee e5 = new Employee("乌乌",21,"女","健身");
		e1.say();
		e2.say();
		e3.say();
		e4.say();
		e5.say();
	}
}
class Employee{
	//员工的属性
	private String name;
	private int age;
	private String sex;
	private String hobby;
	private static String company = "开课吧";
	private static String subject = "java学科";
	
	 //对象创建时调用构造方法 
	Employee (String name,int age,String sex,
			String hobby) {
		this.name = name;
		this.age = age;
		this.sex = sex;
		this.hobby = hobby;
	}
	
	void say() {
		System.out.println("学员名字:"+name);
		System.out.println("年龄:"+age);
		System.out.println("性别:"+sex);
		System.out.println("爱好:"+hobby);
		System.out.println("公司:"+company);
		System.out.println("学科:"+subject);
		System.out.println("--------------");
	}
	
面试题:
构造方法 与 构造代码块 以及 静态代码块的执行顺序:

静态代码块 —> 构造代码块 —> 构造方法

class Demo3{
	static {
			//静态代码块
	}
	
	{
			//构造代码块
		}
	
	Demo3(){
			//构造方法
		}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值