一 、静态特性
1.一个类可以有多个属性、方法和行为,我们需要创建一个对象才能使用这些规定的内容, 类相当于一个模板,通过这个模板快速创建一个有一个的对象,静态特性,就是只属于这个类的,所有对象共享一个类,如果一个对象修改了类中的值,其他对象读取的也是这个值,使用的关键词是static,static关键词可以修饰变量、方法和类,静态的不能调用非静态的。
2.静态的修改一般使用类来修改,不是用某一个具体的对象,即通过类来主导构造出的所有对象,其次我们在静态方法中是无法获取成员变量的值的,因为每个成员变量的值是每个对象私有的,不能通过公共的类来进行访问。
3.一个类只有要被使用才会去加载,这样也能提高性能,所有被标记为静态的内容,会在刚开始加载的时候分配,而不是创建对象的时候分配。
对应代码
public class Main {
public static void main(String[] args) {
Person p1 = new Person();
Person p2 = new Person();
Person.info = "test";
//静态的修改一般用类来修改,不是用某一个具体的对象修改
//一般可以通过类来主导类构造的方法
//我们在静态方法中是无法获取成员变量的值的
System.out.println(Person.info);
Person.test();
}
}
public class Person {
//一个类可以有多个属性、方法和行为,我们需要创建一个对象才能使用这些规定的内容,
// 类相当于一个模板,通过这个模板快速创建一个有一个的对象
//静态特性
//属性,方法,构造
//静态,就是属于这个类的,所有对象共享一个类,一个对象修改了类中的值,其他对象读取的也是这个值
String name = "未知";
int age = 18;
String sex = "男";
static String info;
//一个静态的变量
//加上static就是这个整个类的属性,而不是某一个对象的属性
static void test(){
//静态方法
System.out.println("这是一个静态方法");
}
static void test1(){
//静态不能调用非静态,this就是是用不了的
}
static {
//静态代码块
//可以用来初始静态变量
info = "测试";
}
//一个类只有要使用的时候才会去加载
//所有被标记为静态的内容,会在刚加载的时候分配,而不是对象创建的时候分配,如果没有使用这个类就不会被加载
}
二、包的声明和导入
//在包中存放类也方便对于类方法的管理维护 //在把一些类放到包中时,要导入这个包才行,多个方法可以放到多个包中去 //当我们使用一些包中的方法时要先导入这个包才行 //使用星号 * ,来导入此包中的所有类 //system 像这些IDEA会帮我们默认导入一些包 //导包的时候也要注意注意冲突,不要造成歧义 //造成歧义的时候我们可以写上方法或者类的全名,java,long...
三、访问权限
1. 访问权限有不同的等级,java 中引入访问权限控制,可以为成员变量、成员方法、静态变量、静态方法和类指定访问权限。
默认情况,只能被类本身和其他同包中的其他类访问
private,私有的,无法被除当前类以外的其他类访问
protected,受保护,可以被类本身和包中其他的类访问,也可以被子类访问
public,允许在任何地方访问
2. 创建的普通类不能是**protected**或者是**private**权限,因为我们目前所使用的普通类要么只给当前的包内使用,要么都给外面的人用,如果是**private**谁都不能用的话,意义不大,需要使用自定义方法才能使用。
3. 如果某个类中存在静态方法或者变量,那么我们可以通过静态导入的方式将其中的静态方法或者是静态变量直接导入使用,但是同样需要访问权限的情况下才可以。