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

来源:互联网 发布:finalcut windows 编辑:程序博客网 时间:2024/05/18 18:03

重温面向对象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.形式来引用了,是不是很偷懒。其实懂得偷懒的程序员才是优秀的程序员,因为他懂得将重//复代码进行复用,单独抽取出来进行封装等一系列优化处理。

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

原创粉丝点击