Java static关键字详解 -16天 学习笔记

static

静态变量随着类的加载而加载。可以通过"类.静态变量"的方式进行调用
静态变量的加载要早于对象的创建。

①由于类只会加载一次,则静态变量在内存中也只会存在一 份:存在方法区的静态域中。
类变量 实例变量
类 yes no
对象 yes yes
3.3静态属性举例: System.out; Math.PI;*
4.使用static修饰方法,静态方法
①随着类的加载而加载,可以通过"类.静态方法"的方式进行调用
静态方法 非静态方法
类 yes no
对象 yes yes
①静态方法中,只能调用静态的方法或属性非静态方法中,既可以调用非静态的方法或属性,也可以调用静态的方法或属性
5. static注意点:在静态的方法内,不能使用this关键字、super关键字。
关于静态属性,静态方法的使用多从生命周期去考虑理解。
6.开发中如何确定一个属性是否需要声明为静态。
> 属性可以被多个对象共享,不会随着对象的不同而不同
开发中如何确定一个方法是否需要声明为静态。
> 操作静态属性的方法,必需要设置为static
> 工具类方法习惯声明为静态。比如Math,Arrays,Collections

package com.oop.Demo06;
//static
public class Student {

 private static int age;  //静态的变量  多线程
 private String name;  //非静态的变量

 public void run(){
     System.out.println("pao");
     go();//非静态方法可以调用静态方法

 }

 public static void go (){
     System.out.println("qu");
 }

 public static void main(String[] args) {
     Student s1 = new Student();
     //s1.name.sout快捷键
     System.out.println(s1.name);
     System.out.println(s1.age);
     System.out.println(Student.age);
  // System.out.println(Student.name); 报错因为非静态不能这样使用
     //所以有静态变量我们一般使用类名去调用

     System.out.println("=============");
     Student.go();//静态可以通过类名加方法调用甚至可以之间使用方法名
          go();


 }

}
```



```java
package com.oop.Demo06;

public class Person {
 //假如Person被final修饰了,Student就不能继承
 //final之后断子绝孙

 {
     //代码块()匿名代码块,不建议这样写
     System.out.println("匿名代码块");
 }

 static {
     //静态代码块,永久且只执行一次
     System.out.println("静态代码块");

 }
 public Person(){
     System.out.println("无参构造器(构造方法)");
 }

 public static void main(String[] args) {
     Person p1 = new Person();
     //输出  静态代码块
     //     匿名代码块
     //     无参构造器(构造方法)

     Person p2 = new Person();
      // 只有两个是因为静态代码块只会运行一次
     //   输出   匿名代码块
     //     无参构造器(构造方法)

 }
}
```



```Java
package com.oop.Demo06;

//import static java.lang.Math.rondom;
//import static java.lang.Math.Pi;

public class Text {
 public static void main(String[] args) {
     System.out.println(Math.random());//Math类,可以导入包之后就不用在写Math
     System.out.println();
 }
}
```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值