Java零基础(十一)之static和fianl关键词

  1. Static(重点)

java中的五大存储区域:
栈、堆、方法区、寄存器区、本地方法区
寄存器区:主要是线程的存储区域
本地防区:第三方语言的存储区域,例如:c/c++

重点分析三大区域:堆,栈,方法区
栈:存局部变量 (引用对象,基本变量)
堆:new对象,成员属性
方法区:class文件,静态区(static修饰),常量池(字符串常量)-往往方法区的东西只有一份

1.1 静态属性

成员属性案例

class MyClass{
   
	int a;  //成员属性
}


public class Test1 {
   
	public static void main(String[] args) {
   
		MyClass obj1 = new MyClass();
		MyClass obj2 = new MyClass();
		
		obj1.a = 3;
		obj2.a = 5;
		
		System.out.println(obj1.a+"---"+obj2.a);
	}
}

在这里插入图片描述

静态属性案例

实例属性 VS 静态属性
实例属性: 在堆区,属于对象,通过对象调用;每个对象独有的一份
静态属性: 在方法区,属于类,推荐使用类名调用;所有对象共享同一份

class MyC{
   
	static int a;
}
public class Test2 {
   
	public static void main(String[] args) {
   
		MyC obj1 = new MyC();
		MyC obj2 = new MyC();
		
		//The static field MyC.a should be accessed in a static way
		obj1.a = 3;  //MyC.a = 3; 静态属性属于类,推荐通过类名调静态属性
		obj2.a = 5;
		
		System.out.println(obj1.a+"---"+obj2.a);
	}
}



在这里插入图片描述

静态属性课堂案例

//案例: 统计对象new了多少次
//分析: 先编写面向对象; 每new一次,则次数++
class A{
   
	static int count;  //初始为0
	public A(){
   
		count++;  //使用静态属性进行统计
	}
}
public class Test3 {
   
   public static void main(String[] args) {
   
	  new A();
	  
	  new A();
	  
	  new A();
	  
	  System.out.println(
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值