JAVA--修饰词

程序之中随处可见的单词;public,package,import,static.....都是什么意思呢?这篇就来详细讲述一下JAVA的修饰词.

修饰词

想给给程序中某个元素(如方法,变量等)定性,就可以使用修饰词.

下面来看一个实际的程序:

package com.tests;

import java.util.Arrays;

public class Modifier {

    public final static int C=15;
    int[] arr={9,5,7,6,3,1};

    public static void main(String[] args) {
        Modifier m=new Modifier();
        Arrays.sort(m.arr);
        System.out.println(Arrays.toString(m.arr));
        System.out.println(C);
    }
}

这个程序中使用了大部分常见的修饰词.

package

用来指示程序所在的包,管理文件,区分类全名.

书写位置:程序最顶端,即第一行第一句.

命名规则:域名后缀.域名.项目名.模块名;

import

用来导入所需要的程序,若使用import声明了所需的类,那么在程序中就无需写冗长的类全名,有利于减少工作量.如上面的程序需要使用java.utils包下的Arrays类,就可以使用import来导入.

访问权限修饰符

可以用来控制相应元素的可见范围和访问权限,包含以下四种:public,protected,默认(default,可写可不写),private.

   可以用来:

修饰类:外部类可以使用public 和 default,内部类(同一个源文件下不同文件名的类)可以使用所有.

修饰成员变量:可以使用所有,可见范围不同.

修饰方法:可见性同修饰成员变量,但是有不同点.↓

                 父类的私有方法子类不能重写

下面给出各个修饰词修饰成员变量时的可见范围:

  本类中 同一个包中 不同包的子类中 不同包其他类
public  可见 可见 可见 可见
protected 可见 可见 可见 不可见
default 可见 可见 不可见 不可见
private 可见 不可见 不可见 不可见

在实际做程序开发时,应尽量使用private修饰成员变量,可以提高代码的安全性. 

为了在其他类中可以对成员变量重新设置值获取值,我们可以定义相应成员变量的共有方法进行操作.即Get/Set方法

private String name;

public void setName(String name){

this.name=name//修饰成员变量的值.

}

public String getName(){

return name;

}

final

意思是最终的,最后的.

修饰类:该类不能有子类,即不能被继承.

修饰成员变量:可以直接初始化,也可以在构造器初始化,但是不能再次赋值.

修饰局部变量:只能初始化一次.

修饰方法:不能在子类中被重写,只能被使用.

static

意思是静态的.

修饰成员变量:

1.不属于对象的数据结构

2.属于类的,通常使用类名调用.

3.静态变量与类的信息一起存在方法区中,只存在一份,是对象的公共 资源.

修饰方法:

1.通常的方法:都是与具体对象有关系,即对象的方法(行为).

2.如果是static方法,则与具体对象无关,是类的方法,常用类名去调用.

常与参数有关系.

3.static方法内因为无法使用this关键字,所以不能直接访问非静态成员变量与方法.

4.静态方法的作用:一般用于设计成工具方法和工厂方法.

工具方法: Arrays.sort();Math.random();............

 

修饰代码块

static{}

1.存储在方法区中,只加载一次,与对象无关.

2.执行时机为加载类的信息期间,指的是在实例化之前加载.

3.通常用于加载程序中所需的静态资源.如图片,音频等

运行时机:实例化之前执行,每次实例化之前都会执行一次

下面写一个实例,体会一下static的用法:

public class StaticTest {

    static int num=0;

    public StaticTest(){
        num++;
    }

    static{
        System.out.println("静态代码块中的内容");
    }

    public void outPut(){
        System.out.println("普通方法中的内容");
    }

    public static void staticFun(){
        System.out.println("静态方法中的内容");
    }

    public static void main(String[] args) {
        StaticTest st1=new StaticTest();
        st1.outPut();
        //st1.staticFun;  //无法这么调取静态方法.
        StaticTest.staticFun();
        System.out.println("第一次new后num的值为:"+StaticTest.num);
        StaticTest st2=new StaticTest();
        st2.outPut();
        System.out.println("第二次new后num的值为:"+num);
        StaticTest st3=new StaticTest();
        st3.outPut();
        System.out.println("第三次new后num的值为:"+num);
    }
}

运行之后的结果为:

静态代码块中的内容
普通方法中的内容
静态方法中的内容
第一次new后num的值为:1
普通方法中的内容
第二次new后num的值为:2
普通方法中的内容
第三次new后num的值为:3

 可以看到静态代码块中的内容被最先执行,被定义为static的变量num每次new之后都会+1,且静态方法只能由类名调用.

常量:

一般是一些特殊的值,一般使用成员变量,用类名调取,声明时必须初始化

修饰词为public static final 变量名

命名时字母全部大写.

如:Math.PI;圆周率

你可能感兴趣的:(之前总结的Java)