zoukankan      html  css  js  c++  java
  • java第五章:面向对象(oop)之 static、package、import关键字

    java程序在执行过程中,类,对象以及它们成员加载、初始化的顺序如下: 
    1、首先加载要创建对象的类及其直接与间接父类。
    2、在类被加载的同时会将静态成员进行加载,主要包括静态成员变量的初始化,静态语句块的执行,在加载时按代码的先后顺序进行。
    3、需要的类加载完成后,开始创建对象,首先会加载非静态的成员,主要包括非静态成员变量的初始化,非静态语句块的执行,在加载时按代码的先后顺序进行。
    4、最后执行构造器,构造器执行完毕,对象生成。
    上面四段话意思就是静态变量(全局变量)创建时间要早于new对象(成员变量)的时间。
    所以静态的方法,不能访问非静态的属性和方法;反之,非静态的方法可以访问静态的属性和方法;

    static 关键字:可以修饰方法(静态方法)或者成员变量(全局变量),不能用来修饰局部变量(只能用final修饰)
    全局变量和成员变量的区别:
    1.在内存中的保存位置不同:成员变量保存在堆中,全局变量保存在方法区;
    2.保存份数不同:成员变量,每new出来一份都要分配空间,保存多份;全局变量只保存一份;
    3.创建时间不同:成员变量,new的时候,才创建;全局变量,类加载时就创建;
    4.访问方式不用: 成员变量,用对象名.属性,对象名.方法名();,可以使用this关键字;
    全局变量,推荐 用类名.属性,类名.方法名();当然也可以
    用对象名.属性,对象名.方法名(),可以使用this关键字;

    (普通)代码块:单独在{}中写的代码;new的时候,才会被执行,不new不执行,new几次执行几次;
    执行顺序在构造器之前

    (static)代码块:static{} 类加载的时候就会被执行,不new也执行。只会执行1次。
     执行顺序:静态代码块>普通代码块>构造器>普通方法或静态方法;
    静态的方法或者代码块,只能访问静态的成员变量,不能访问非静态的属性和方法;
    反之,非静态的方法或者代码块可以访问的静态或非静态属性和方法;
    package关键字:包是对存放的数据分门别类,避免同级目录的命名冲突
    声明包,语法:package 包名,eg:package cn.zzsxt.demo;必须放在类的第一行

    常用的包:
    java.lang包:java的核心类库(String , System,Math....);
    java.util包:java工具类(Scanner,Arrays)
    java.io包:i(input)/o(output)java中流的输入和输出相关类库;
    java.sql包:提供操作数据库的相关类库
    java.net包:网络编程相关类库
    java.text包:国际化或格式化输出相关类库

    import关键字:需要访问不同包下的其他包中的类时,需要导包;
    方式1:import 包名.*---导入该包下的所有类;
    方式2:import 包名.类名---导入该包下的具体类(推荐使用)
    方式3:不使用import关键字,使用全类名书写代码,eg: java.util.Scanner input = new java.util.Scanner(System.in);

    静态导入:JDK 1.5之后的新特性,在导入某包下的静态属性或者方法时,可以是用静态导入;
    语法:import static 包名.类名.*或者import static 包名.类名.属性名/方法名;然后代码书写的时候就可以省略类名;


  • 相关阅读:
    iOS7中修改StatusBar的显示颜色
    制作自己的字库并在工程中显示
    用字典给Model赋值并支持map键值替换
    用字典给Model赋值
    通过runtime打印出对象所有属性的值
    加密解密再也不是你的噩梦
    通过runtime获取对象相关信息
    UITableView的UITableViewStyleGrouped
    笑话
    【转】 ios开发证书CER文件、P12文件,mobileprovition许可文件的用途
  • 原文地址:https://www.cnblogs.com/SXTzhaopengda/p/6944021.html
Copyright © 2011-2022 走看看