面向对象三

面向对象三

一、static

  1. 案例:

    public class Person {
       //2:赋初始值
       {
           System.out.println("匿名代码块");
       }
       //1:只执行一次
       static{
           System.out.println("静态代码块");
       }
       //3
       public Person(){
           System.out.println("构造方法");
       }
    public static void main(String[] args) {
    
    Person person1 = new Person();
    
    System.out.println("===============================");
    
    Person person2 = new Person();
    
    }
    
    }
    
    

  2. 静态导入包

    //静态导入包~
    import static java.lang.Math.random;
    import static java.lang.Math.PI;
    public class Test {
    
    public static void main(String[] args){
    
    System.out.println(random());//直接使用
    
    System.out.println(PI);//直接使用
    
    }
    
    }
    

二、抽象类

  1. abstract 修饰符可以用来修饰方法也可以用来修饰类。如果修饰方法,那么该方法是抽象方法,如果修饰类,那么该类是抽象类。

  2. 抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象方法。

  3. 抽象类不能用new关键字来创建对象,他是用来让子类继承的。

  4. 抽象方法,只有方法的声明,没有方法的实现,他是让子类来实现的

  5. 子类继承抽象类,那么就必须要实现抽象类没有实现的方法,否则该子类也要声明为抽象类。

  6. public abstract 默认修饰和声明方法

三、接口

  1. 普通类:只有具体实现 <------->抽象类:具体实现和规范(抽象方法)都有!

  2. 接口:只有规范(自己无法写方法,专业的约束!约束和实现分离:面向接口编程)

  3. 接口就是规范,定义一组规则,体现了现实世界中"如果你是...则必须能..."的思想。如果你是天使,则必须能飞。如果你是汽车,则必须能跑。如果你是好人,则必须干掉坏人;如果你是坏人,则必须欺负好人。

  4. 接口的本质是契约,就像我们人间的法律一样,制定好后大家都遵守。

  5. OO的精髓,是对对象的抽象,最能体现这一点的就是接口。为什么我们讨论设计模式都只针对具备了抽象能力的语言(比如C++、java、C#等),就是因为设计模式所研究的,实际上就是如何合理的去抽象。

  6. 声明接口的关键是interface,(声明类的是class)

  7. 案例:

    //interface 定义接口的关键字,接口都需要有实现类
    public interface UserService {
       //接口中的所有定义其实都是抽象的 public abstract
   //常量
   public static final int AGE = 99;
   void add(String name);
   void delete(String name);
   void update(String name);
   void query(String name);

}

```java
public interface TimeService {
    void timer();
}
//抽象类: extents
//类 可以实现接口 implements 接口
//实现了接口的类,就需要重写接口中的方法
//多继承,利用接口实现
public class UserServiceImp implements UserService,TimeService{
    //接口中的所有定义其实都是抽象的 public abstract
    @Override
    public void add(String name) {

}

@Override
public void delete(String name) {

}

@Override
public void update(String name) {

}

@Override
public void query(String name) {

}

@Override
public void timer() {

}


}

@Override
public void delete(String name) {

}

@Override
public void update(String name) {

}

@Override
public void query(String name) {

}

@Override
public void timer() {

}
}

  1. 作用:

    • 约束

    • 定义一些方法,让不同的人有不同的实现

    • public abstract 默认修饰和声明方法

    • public static final 默认修饰常量

    • 接口不能被实例化,因为接口中没有构造方法

    • implements可以实现多个接口

    • 必须要重写接口中的方法

四、内部类

内部类就是在一个类的内部在定义一个类,比如A类中定义一个B类,那么B类相对于A类来说就称为内部类,而A类相对于B类来说就是外部类了。

  1. 成员内部类

  2. 静态内部类

  3. 局部内部类

  4. 匿名内部类

posted on   ahssmy  阅读(7)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示