首页 > 其他分享 >面向对象三

面向对象三

时间:2023-07-09 23:13:45浏览次数:29  
标签:String void 接口 面向对象 抽象类 public name

面向对象三

一、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() {

}

}

  1. 作用:

    • 约束

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

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

    • public static final 默认修饰常量

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

    • implements可以实现多个接口

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

四、内部类

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

  1. 成员内部类

  2. 静态内部类

  3. 局部内部类

  4. 匿名内部类

标签:String,void,接口,面向对象,抽象类,public,name
From: https://www.cnblogs.com/ahbzbn/p/17539610.html

相关文章

  • 面向对象二
    面向对象二封装该露的露,该藏的藏我们设计程序要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴漏少量的方法给外部使用。封装(数据的隐藏)通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏......
  • 06_面向对象
    一、类和对象面向对象和面向过程的思想对比:面向过程:是一种以过程为中心的编程思想,实现功能的每一步,都是自己实现的面向对象:是一种以对象为中心的编程思想,通过指挥对象实现具体的功能1.1类和对象的关系客观存在的事物皆为对象,所以我们也常常说万物皆对象类类的理解类......
  • TypeScript面向对象
    TypeScript面向对象面向对象是程序中一个非常重要的思想。面向对象很简单,简而言之就是程序之中所有的操作都需要通过对象来完成。一切皆对象接口TypeScript中的接口跟传统语言(比如Java)的接口有点差别对象可以隐式实现接口概念描述一个类型一个接口里面可以有:字段方法......
  • go语言的"面向对象"
    面向对象定义面向对象三要素:封装:将属性(数据)和方法(操作)封装,提供访问控制,隐藏实现细节,暴露该暴露的继承:子类可以从父类直接获得属性和方法,减少重复定义。子类中如果与父类不同,可以自己定义新的属性和方法,也可以覆盖同名的属性和方法多态:前提是继承和覆盖,使得子类中虽然使用同......
  • Java面向对象
    Java面向对象什么是面向对象1.面向过程步骤简单清晰2.面向对象分类的思维模式适合处理复杂的问题3.oop以类的方式组织代码,以对象的组织(封装)数据4.特点:抽象5.特性:封装、继承、多台回归方法的定义和调用1.方法的定义1.return代表方法结束了......
  • 面向对象(java)
    一、定义 二、注意事项:一个java文件中最好只写一个类;  三、封装(1)对象代表什么,就得封装对应的数据,并提供数据对应的行为;(2)如果加了static,就是类的变量(类共享),而不是实例变量了;......
  • 个人对面向对象和面向过程的认识
    面向过程和面向对象的区别:面向过程和面向对象都是对软件分析、设计和开发的一种思想,它指导着人们以不同的方式去分析、设计和开发软件。C语言是一种典型的面向过程语言,Java是一种典型的面向对象语言。面向过程适合简单、不需要协作的事务,重点关注如何执行。面向对象(Oriented......
  • JavaScript(四)面向对象
    创建对象prototype对象JavaScript对每个创建的对象都会设置一个原型,指向它的原型对象。当我们用obj.xxx访问一个对象的属性时,JavaScript引擎先在当前对象上查找该属性,如果没有找到,就到其原型对象上找,如果还没有找到,就一直上溯到Object.prototype对象,最后,如果还没有找到,就只能返......
  • 面向对象综合案例练习
    面向对象综合案例练习练习1:文字版格斗游戏格斗游戏:每个游戏角色的名字血量都不同,在选定人物的时候(new对象的时候),这些信息就应该被确定下来建立两个类:角色类和测试类packagecom.itheima.MethodAllTest01;importjava.util.Random;publicclassRole{privateSt......
  • 简单的python面向对象案例——跑步或吃饭
    个人学习,仅供参考要求对象:小明a.属性:姓名,体重b.方法:跑步,吃东西(每次跑步会减掉0.1kg,每次吃东西增加0.2kg)输入名字以初始体重选择跑步或吃东西,输入次数打印当前体重代码如下:#定义一个类classPerson(object):#公共属性def__init__......