一、静态字段和静态方法
1、声明
静态字段通过static
进行声明,与class中普通字段不同的是, 一个类的所有实例都共享一个静态空间,用来放静态字段的值
-
静态字段
访问:
类名.静态字段
尽量不要用实例名.静态字段
实例对象并没有静态字段,编译器自动转换为类名
-
静态方法
调用实例方法必须通过一个实例变量,而调用静态方法则不需要实例变量,通过类名就可以调用。静态方法类似其它编程语言的函数。
静态方法只能访问静态字段,不能访问
this
,不能访问实例字段- 静态方法用于工具类
- Arrays.sort()
- Math.random()
- 静态方法用于工具类
2、接口的静态字段
接口不能有实例字段,但是可以有静态字段,静态字段通过 final修饰
interface Person{
public static final int num = 0;
public static final int age = 0;
}
上面可以简化
interface Person{
int num = 0;
int age = 0;
}
因为interface
的字段只能是public static final
,编译器会默认添加
二、包的概念
1、包的结构
java定义了一种命名空间,称为package
,用来避免命名冲突的问题;一个类总是属于某个包,所以完整的类名是包名.类名
在src目录下有文件结构,编译之后生成的.class文件在bin目录下
2、包的作用域
位于同一个包的类,可以访问包作用域的字段和方法。不用public
、protected
、private
修饰的字段和方法就是包作用域。
3、import
引用其他的类
-
直接写出完整类名(包名.类名)
-
import 完整类名
-
import package.*(导入包里面的所以类)
import mr.jun.*
-
import static package.*
import static java.lang.System.*
三、作用域
- public 可以被任何类和包访问
- private 访问限制在类中
- protected 访问相比于private拓展到子类
- final 阻止类被继承,阻止方法被覆写,阻止字段被重新赋值
一个.java
文件只能包含一个public
类,但可以包含多个非public
类。如果有public
类,文件名必须和public
类的名字相同。
package
包作用域是指一个类允许访问同一个package
的没有public
、private
修饰的class
,以及没有public
、protected
、private
修饰的字段和方法
局部变量
在方法内部定义的变量称为局部变量,局部变量作用域从变量声明处开始到对应的块结束。方法参数也是局部变量