1.这个类的main函数中 声明这个类并且调用,是可以的,不会报错
public class Neibu_test {
public int a=10;
public static void main(String[] args) {
Neibu_test b=new Neibu_test();
System.out.println(b.a);
}
}
2.类的权限修饰符
public protected abstract final
public 不同包中可以访问
default 不同包中不可以访问
abstract 该类为抽象类,抽象类中可以有非抽象方法和抽象方法。不能实例化,不能调用该类中的方法,只能通过子类继承,通过子类的对象调用该抽象类中的方法
如果一个类包含抽象方法,则一定是抽象类
抽象方法是用abstract修饰的方法,只有方法标识符,没有方法体
子类必须重写父类的全部抽象方法,或者声明自身是抽象类。
package com.class_decoration;
import com.class_decoration.Defalut_Class;
import com.class_decoration.Public_Class;
public class test extends Defalut_Class {
@Override
void add() {
System.out.println("只能通过子类访问抽象类,并且子类必须实现抽象类中的所有抽象方法,且子类和父类在同一包中"+a);
}
public static void main(String[] args) {
test test01 =new test();
test01.add();
}
}
package com.class_decoration;
abstract class Defalut_Class {
public void print()
{
System.out.println("调用了抽象类的print方法");
}
abstract void add();
public int a=10;
}
final 定义该类是最终的类,不可以被继承
类中属性和方法的访问控制修饰符
public 没有限制 ,只要声明,并且导了包,就可以使用
protected 要么是子类 ,要么是同一个包中 才可以访问
default 同一包中才可以访问
private 仅本类中可以访问
static修饰的属性
静态属性,不管是通过对象a还是对象b,还是直接类访问,访问到的都是同一个值。
package com.class_decoration;
public class Test {
public static int a ;
public static void main(String[] args) {
Test test01=new Test();
Test test02=new Test();
test01.a=10;
System.out.println(Test.a);
System.out.println(test01.a);
System.out.println(test02.a);
Test.a=200;
System.out.println(Test.a);
System.out.println(test01.a);
System.out.println(test02.a);
}
}