首页 > 其他分享 >面向对象进阶:多态、内部类、常用API

面向对象进阶:多态、内部类、常用API

时间:2024-08-02 23:24:19浏览次数:16  
标签:进阶 void 多态 接口 System API static println public

目录

 Java中的接口

Java中的内部类

 常用API

StringBuilder类


Java高级面向对象编程

在这篇博客文章中,我们将探索Java中的高级面向对象编程概念,包括接口、内部类和常用API。每个概念都将通过代码示例来演示它们的应用。

 Java中的接口

 什么是接口?

接口是Java中的一种引用类型,类似于类,它可以包含常量、方法签名、默认方法、静态方法和嵌套类型。接口不能包含实例字段,接口中的方法默认是抽象的。

接口的特点

- **声明**:接口使用`interface`关键字声明。
- **实现**:类使用`implements`关键字实现接口。
- **多继承**:一个类可以实现多个接口。

 示例

```java
public interface Animal {
    void eat();
    void sleep();
}

public class Dog implements Animal {
    @Override
    public void eat() {
        System.out.println("Dog eats bone");
    }

    @Override
    public void sleep() {
        System.out.println("Dog sleeps");
    }

    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.eat();
        dog.sleep();
    }
}
```

在这个示例中,我们定义了一个名为`Animal`的接口,和一个实现该接口的`Dog`类。`Dog`类实现了`Animal`接口的所有方法。

JDK 8及以后接口的新特性

- **默认方法**:使用`default`关键字,允许在接口中定义方法体。
- **静态方法**:使用`static`关键字,可以直接在接口中调用,而不需要实现类。
- **私有方法**:从JDK 9开始,接口可以包含`private`方法,供其他默认方法或私有方法调用。

 示例

```java
public interface Vehicle {
    default void start() {
        System.out.println("Vehicle is starting");
    }

    static void check() {
        System.out.println("Vehicle check");
    }

    private void clean() {
        System.out.println("Vehicle clean");
    }
}

public class Car implements Vehicle {
    public static void main(String[] args) {
        Car car = new Car();
        car.start();  // 调用默认方法
        Vehicle.check();  // 调用静态方法
    }
}
```

Java中的内部类

 内部类的概述

内部类是在一个类里面定义的类。根据定义的位置不同,内部类可以分为以下几种类型:

1. **静态内部类**:使用`static`关键字修饰,属于外部类本身。
2. **成员内部类**:不使用`static`修饰,属于外部类的对象。
3. **局部内部类**:定义在方法、代码块或构造器中。
4. **匿名内部类**:没有名字的内部类,通常用于简化代码。

 示例:静态内部类

```java
public class Outer {
    public static class StaticInner {
        public void display() {
            System.out.println("Static Inner Class");
        }
    }

    public static void main(String[] args) {
        Outer.StaticInner inner = new Outer.StaticInner();
        inner.display();
    }
}
```

 示例:成员内部类

```java
public class Outer {
    public class MemberInner {
        public void show() {
            System.out.println("Member Inner Class");
        }
    }

    public static void main(String[] args) {
        Outer outer = new Outer();
        Outer.MemberInner inner = outer.new MemberInner();
        inner.show();
    }
}
```

 示例:匿名内部类

```java
public interface Greeting {
    void sayHello();
}

public class Main {
    public static void main(String[] args) {
        Greeting greeting = new Greeting() {
            @Override
            public void sayHello() {
                System.out.println("Hello, Anonymous Inner Class!");
            }
        };
        greeting.sayHello();
    }
}
```

 常用API

 Object类

`Object`类是Java所有类的父类,提供了一些常用方法,如`toString()`和`equals()`。

 示例

```java
public class Person {
    private String name;

    public Person(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "Person{name='" + name + "'}";
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Person person = (Person) o;
        return name.equals(person.name);
    }

    public static void main(String[] args) {
        Person p1 = new Person("Alice");
        Person p2 = new Person("Alice");
        System.out.println(p1);  // 输出:Person{name='Alice'}
        System.out.println(p1.equals(p2));  // 输出:true
    }
}
```

StringBuilder类

`StringBuilder`是一个可变的字符串类,提供了高效的字符串操作能力。

 示例

```java
public class StringBuilderExample {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        sb.append("Hello");
        sb.append(" ");
        sb.append("World");
        System.out.println(sb.toString());  // 输出:Hello World
    }
}
```

通过这些示例,我们可以看到Java中的高级面向对象编程概念如何应用于实际开发中,提高代码的灵活性和可维护性。

--- 

希望这篇文章对您理解Java的高级面向对象概念有所帮助!如果有任何问题,欢迎讨论。

标签:进阶,void,多态,接口,System,API,static,println,public
From: https://blog.csdn.net/2302_80084329/article/details/140882135

相关文章

  • 高德地图API使用(根据地址查经纬度,计算二个坐标之间的距离)
    高德地图API使用(根据地址查经纬度,计算二个坐标之间的距离) 根据地址查经纬度:https://restapi.amap.com/v3/geocode/geo?address=广西壮族自治区南宁市西乡塘区衡阳西路34号&output=JSON&key=38f05ba13d4324325返回:  {"status":"1","info":"OK","infocod......
  • 使用OpenAI API搭建AI聊天机器人
    在本文中,我们将介绍如何使用OpenAIAPI搭建一个简单的AI聊天机器人。为了便于国内用户访问,我们将使用中专API地址http://api.wlai.vip。什么是OpenAIAPIOpenAIAPI提供了一系列强大的自然语言处理(NLP)模型,这些模型可以用来执行各种任务,如文本生成、翻译、问答、摘要等。......
  • 如何使用中转API访问大型语言模型(LLM)
    在现代人工智能领域,大型语言模型(LLM)如GPT-3、ChatGPT等,已经展示出了惊人的自然语言处理能力。然而,由于国内网络环境的限制,直接访问国外的API存在一定困难。因此,我们需要通过中转API来访问这些服务。本文将介绍如何使用中转API地址http://api.wlai.vip来调用OpenAI的GPT-3模......
  • Python:第三课:重要API - 集合类
    列表-list可以用来存储内容可变长度可变类型可以不同有序的数据的数据结构。类似于java中的List列表的基本使用:##定义列表l1=[1,2,3,"a","b","c",True,False]##访问列表print(l1[4])print(l1[3:6])print(l1[3:])print(l1[:6])print(l1[-2])##更新列表l1[4......
  • fastapi 使用websocket协议
      fastapi是一个高性能异步web框架,并且支持websocket协议。这是一个比较新的框架,但github上的Star数挺多,快追上flask了。1、websocket服务端的简单实现:@app.websocket('/test')asyncdefwebsocket_test(websocket:WebSocket):#服务器接受客户端的WebSocket连接请求。......
  • 2024中国天气网 实况天气API JSON格式接口
    中国天气网API接口GBK格式json数据:http://www.weather.com.cn/data/sk/101010100.htmlhttp://www.weather.com.cn/data/cityinfo/101010100.html{“weatherinfo”:{“city”:“鍖椾含”,“cityid”:“101010100”,“temp”:“18”,“WD”:“涓滃崡椋�”,“WS”:“1绾�”,......
  • .Net 6.0 Web API 项目生成镜像并上传到私有仓库 Harbor
    〇、前言本文首先简单介绍了Dockerfile内容和常用命令;然后是在Windows环境Dockerdesktop的安装和配置;最后创建了WebAPI示例项目,并简单说明了从构建到推送至Harbor镜像仓库的步骤。一、关于Dockerfile1.1Dockerfile文件示例#Seehttps://aka.ms/customizecont......
  • 抽象和多态的关系
    接口和多态的关系多态性的基础:接口是实现多态性的关键机制之一。通过接口,不同的类可以实现相同的方法,但具体的实现可以各不相同。方法重载:多态性允许同一个方法名在不同的类中有不同的实现。接口定义了这些方法的统一签名,而实现类提供了具体的实现细节。动态绑定......
  • SQL进阶技巧:Hive如何巧解和差计算的递归问题?【应用案例2】
    目录0问题描述1数据准备2问题分析3小结 0问题描述有如下数据:反应了每月的页面浏览量现需要按照如下规则计算每月的累计阅读量,具体计算规则如下:最终结果如下:1数据准备withdataas(select'2024-01'asmonth,2aspvunionallselect'2024-02'asm......
  • 2024年网络安全学习指南!详尽路线图,从零基础到黑客高手的进阶之路!_网络安全自学路线图
    零基础小白,到就业!入门到入土的网安/黑客学习路线!建议的学习顺序:一、网络安全学习普法(心里有个数,要进去坐几年!)1、了解并介绍《网络安全法》2、《全国人大常委会关于维护互联网安全的决定》3、《中华人民共和国计算机信息系统安全保护条例(2011年修正)》4、《中华人民共......