static
类变量
public class Main{
public static int a = 10;
public String name = "chenchenchen"
public static void main(String[] args){
System.out.println(Main.a);
System.out.println(Main.name);//错误,name不是类变量
Main s = new Main();
System.out.println(s.a); //正确
}
}
静态代码块
public class Main{
{
System.out.println("匿名代码块");
}
static{
System.out.println("静态代码块");
}
public Main(){
System.out.println("构造器");
}
public static void main(String[] args){
Main main1 = new Main();
//输出 静态代码块 匿名代码块 构造器
Main main2 = new Main();
//输出 匿名代码块 构造器
//静态代码块只随类加载一次
}
}
抽象类
一种约束
- 不能静态代码块和构造方法执行顺序被实例化,只能被继承,由子类来实现
- 抽象方法必须在抽象类中,抽象类中可以有普通方法
- jjava环境变量配置ava中抽象类更利于代码的维护和重用,对比较重要的东西进行限制,也是一java面试题种保护
- 抽象类也有构造方法,只是不能实例化而已
接口
抽象类的抽象,一种openstack核心组件专业级别的约束,实现了多继承
- 用interface来定义,用implement来实现
- 接口中的方法 默认为 public abstract
- 接口中一般不定义常抽象类的作用量,如果有 默认为 public static final
- 接口中的方法必须被实现
- 将定义与实现分离开来
public interface Student{
void add(String name);
}
public class Main implement{
public void add(String name){ //必须重写接口中的方法
}
public static void main(String[] args){
}
}
匿名类
public class Main{
public static void main(String[] args){
new A.say(); //不将实例保存到对象中
new B(){
public void haha(){
}
}
}
}
public class A{
public void say(){
System.out.println("hi");
}
}
public interface B{
void haha();
}
内部类
public class Main{
public static void main(String[] args){
A.B s = new A().new B();
s.in(); //内部类最重要特点,可以调用外部类的私有属性
}
}
public class A{
private int id = 10;
public void say(){
System.out.println("hi");
}
class B{
public void in(){
System.out.println("in");
System.out.println(id);
}
}
}
发表评论