重温面向对象OOP——static关键字

重温面向对象OOP——static关键字

  • 1. 静态的变量


    对一个类的静态变量A来说,实例化出的每一个对象,都有自己的A变量
public class Yuan(){
    private static final double PI =3.1415926;
    ...
    }

-该类实例化出A、B对象的时候,两个对象各自都拥有自己PI变量

//做为静态的变量,是将类名作为它的名称空间,可以这样
//取到静态变量
    System.out.printfLn(Yuan.PI);
  • Java程序设计领域中,养成的良好习惯,在用类名+”.”来访问它的静态成员,这样我们一看就知道这个变量是static成员,我们经常用到的System.out……对,o就是说System拥有静态static成员out,同理,看其他类名.静态变量。

  • 2.如果有些动作想在位码加载后执行,则可以定义static区块——这里需要说明一下,什么事位码,java的的编译过程是:
    JavaCode.java文件—>JavaCode.class文件—>通过JVM(java虚拟机)将class文件加载进入内存—>二进制Byte位码(1011001…)机器语言。
    我们继续,位码加载后执行,说明Java文件加载进虚拟机变成二进制码后,默认就会执行在内存中的静态代码块(static区块)

public class Ball(){
    static{
    System.out.printfLn("这是一个static区块");
    }
}
  • 3.偷懒的程序员
    在JDK1.5之后,新增了import static的语法,这样我们在使用常用的System.out.printfLn();的时候可以少打几个字。例如:

package cc.openhome;

import java.until.Scanner;
import static java.lang.System.out;
import static java.lang.System.in;

public class Test(){
    public static void main(String[] args){
        Scanner scanner = new Scanner(in);
        out.print("请输入你的姓名");
        out.print("%s 你好!",scanner.nextLine());
    }
}

  • 4.导入架包时的static

    • 看到这个标题,你可能会说,我在导入架包的时候没有用到static啊,我们来看。
import static java.lang.System.*
//如果一个类中有多个static成员想摇偷懒,这个语法是正确的,这样在写System.out...和System.in...等引用
//时,就直接out.后者in.形式来引用了,是不是很偷懒。其实懂得偷懒的程序员才是优秀的程序员,因为他懂得将重
//复代码进行复用,单独抽取出来进行封装等一系列优化处理。

业精于勤荒于嬉,行成于思毁于随

上一篇:[原创]Javascript模拟“类”的综合实现方式以及部分细节【截至ES6】


下一篇:JAVA中23种设计模式之单例模式