java 方法 修饰词_JAVA--修饰词

本文详细介绍了Java中的修饰词,包括package、import、访问权限修饰符(public、protected、默认、private)、final和static。强调了在实际开发中使用private修饰成员变量以提高安全性,以及static方法和静态代码块的应用场景。同时,还解释了常量的声明方式和命名规范。
摘要由CSDN通过智能技术生成

程序之中随处可见的单词;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;圆周率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值