GitHub Copilot
已使用 1 个引用
类
对象
封装
继承
多态
抽象类
接口
构造函数
方法重载
方法重写
访问修饰符
静态成员
静态方法
静态块
内部类
匿名内部类
抽象方法
接口实现
接口继承
多重继承
多态性
方法引用
构造器引用
this关键字
super关键字
final关键字
instanceof操作符
包
导入包
异常处理
序列化
反序列化
克隆
深拷贝
浅拷贝
单例模式
工厂模式
抽象工厂模式
代理模式
适配器模式
用法
类:
用法:定义对象的蓝图,包含属性和方法。
示例:
public class Person { private String name; private int age; public void setName(String name) { this.name = name; } public String getName() { return name; } }
对象:
用法:类的实例,通过类创建对象。
示例:
Person person = new Person(); person.setName("John");
封装:
用法:通过访问修饰符控制对类成员的访问,保护数据。
示例:
public class Person { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
继承:
用法:一个类继承另一个类,获得其属性和方法。
示例:
public class Animal { public void eat() { System.out.println("This animal eats food."); } } public class Dog extends Animal { public void bark() { System.out.println("The dog barks."); } }
多态:
用法:同一方法在不同对象上有不同表现。
示例:
Animal animal = new Dog(); animal.eat(); // 调用的是Dog类中的eat方法
抽象类:
用法:不能实例化的类,包含抽象方法,必须由子类实现。
示例:
public abstract class Animal { public abstract void makeSound(); } public class Dog extends Animal { public void makeSound() { System.out.println("Bark"); } }
接口:
用法:定义一组方法,类实现接口必须实现这些方法。
示例:
public interface Animal { void makeSound(); } public class Dog implements Animal { public void makeSound() { System.out.println("Bark"); } }
构造函数:
用法:初始化对象时调用的方法。
示例:
public class Person { private String name; public Person(String name) { this.name = name; } }
方法重载:
用法:同一类中多个方法同名但参数不同。
示例:
public class MathUtils { public int add(int a, int b) { return a + b; } public double add(double a, double b) { return a + b; } }
方法重写:
用法:子类重新定义父类的方法。
示例:
public class Animal { public void makeSound() { System.out.println("Animal sound"); } } public class Dog extends Animal { @Override public void makeSound() { System.out.println("Bark"); } }
访问修饰符:
用法:控制类、方法和属性的访问级别。
示例:
public class Person { private String name; // 仅类内部可访问 public int age; // 任何地方可访问 }
静态成员:
用法:属于类而不是实例的变量或方法。
示例:
public class MathUtils { public static final double PI = 3.14159; }
静态方法:
用法:属于类而不是实例的方法。
示例:
public class MathUtils { public static int add(int a, int b) { return a + b; } }
静态块:
用法:用于初始化静态变量。
示例:
public class MathUtils { static { System.out.println("Static block executed"); } }
内部类:
用法:定义在另一个类内部的类。
示例:
public class OuterClass { class InnerClass { void display() { System.out.println("Inner class"); } } }
匿名内部类:
用法:没有名字的内部类,通常用于简化代码。
示例:
public class Test { public static void main(String[] args) { new Thread(new Runnable() { public void run() { System.out.println("Anonymous inner class"); } }).start(); } }
抽象方法:
用法:没有实现的方法,必须由子类实现。
示例:
public abstract class Animal { public abstract void makeSound(); }
接口实现:
用法:类实现接口并提供接口方法的具体实现。
示例:
public class Dog implements Animal { public void makeSound() { System.out.println("Bark"); } }
接口继承:
用法:一个接口继承另一个接口。
示例:
public interface Animal { void makeSound(); } public interface Pet extends Animal { void play(); }
多重继承:
用法:通过接口实现多重继承。
示例:
public interface Animal { void makeSound(); } public interface Pet { void play(); } public class Dog implements Animal, Pet { public void makeSound() { System.out.println("Bark"); } public void play() { System.out.println("Play"); } }
多态性:
用法:同一方法在不同对象上有不同表现。
示例:
Animal animal = new Dog(); animal.makeSound(); // 调用的是Dog类中的makeSound方法
方法引用:
用法:使用现有的方法来实现函数式接口的抽象方法。
示例:
List<String> list = Arrays.asList("a", "b", "c"); list.forEach(System.out::println);
构造器引用:
用法:使用构造器来实现函数式接口的抽象方法。
示例:
Supplier<List<String>> listSupplier = ArrayList::new; List<String> list = listSupplier.get();
this关键字:
用法:引用当前对象。
示例:
public class Person { private String name; public Person(String name) { this.name = name; } }
super关键字:
用法:引用父类对象。
示例:
public class Animal { public void makeSound() { System.out.println("Animal sound"); } } public class Dog extends Animal { public void makeSound() { super.makeSound(); System.out.println("Bark"); } }
final关键字:
用法:用于声明常量、方法不可重写、类不可继承。
示例:
public final class Constants { public static final double PI = 3.14159; }
instanceof操作符:
用法:检查对象是否是特定类的实例。
示例:
if (obj instanceof String) { System.out.println("obj is a String"); }
包:
用法:组织类和接口的命名空间。
示例:
package com.example; public class MyClass { }
导入包:
用法:在类中使用其他包中的类和接口。
示例:
import java.util.List; public class MyClass { }
异常处理:
用法:处理程序运行时的异常情况。
示例:
try { int result = 10 / 0; } catch (ArithmeticException e) { System.out.println("Cannot divide by zero"); }
序列化:
用法:将对象转换为字节流以便存储或传输。
示例:
public class Person implements Serializable { private static final long serialVersionUID = 1L; private String name; }
反序列化:
用法:将字节流转换回对象。
示例:
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("person.ser")); Person person = (Person) ois.readObject();
克隆:
用法:创建对象的副本。
示例:
public class Person implements Cloneable { protected Object clone() throws CloneNotSupportedException { return super.clone(); } }
深拷贝:
用法:创建对象及其引用对象的副本。
示例:
public class Person implements Cloneable { private Address address; protected Object clone() throws CloneNotSupportedException { Person cloned = (Person) super.clone(); cloned.address = (Address) address.clone(); return cloned; } }
浅拷贝:
用法:创建对象的副本,但不复制引用对象。
示例:
public class Person implements Cloneable { protected Object clone() throws CloneNotSupportedException { return super.clone(); } }
单例模式:
用法:确保一个类只有一个实例,并提供全局访问点。
示例:
public class Singleton { private static Singleton instance; private Singleton() { } public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } }
工厂模式:
用法:定义一个创建对象的接口,但让子类决定实例化哪个类。
示例:
public interface Shape { void draw(); } public class Circle implements Shape { public void draw() { System.out.println("Circle"); } } public class ShapeFactory { public Shape getShape(String shapeType) { if (shapeType.equals("CIRCLE")) { return new Circle(); } return null; } }
抽象工厂模式:
用法:提供一个创建一系列相关或依赖对象的接口,而无需指定它们具体的类。
示例:
public interface Shape { void draw(); } public class Circle implements Shape { public void draw() { System.out.println("Circle"); } } public interface AbstractFactory { Shape getShape(String shapeType); } public class ShapeFactory implements AbstractFactory { public Shape getShape(String shapeType) { if (shapeType.equals("CIRCLE")) { return new Circle(); } return null; } }
代理模式:
用法:为其他对象提供一种代理以控制对这个对象的访问。
示例:
public interface Image { void display(); } public class RealImage implements Image { private String fileName; public RealImage(String fileName) { this.fileName = fileName; } public void display() { System.out.println("Displaying " + fileName); } } public class ProxyImage implements Image { private RealImage realImage; private String fileName; public ProxyImage(String fileName) { this.fileName = fileName; } public void display() { if (realImage == null) { realImage = new RealImage(fileName); } realImage.display(); } }
适配器模式:
用法:将一个类的接口转换成客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的类可以一起工作。
示例:
public interface MediaPlayer { void play(String audioType, String fileName); } public class AudioPlayer implements MediaPlayer { public void play(String audioType, String fileName) { if (audioType.equalsIgnoreCase("mp3")) { System.out.println("Playing mp3 file. Name: " + fileName); } } } public interface AdvancedMediaPlayer { void playVlc(String fileName); void playMp4(String fileName); } public class VlcPlayer implements AdvancedMediaPlayer { public void playVlc(String fileName) { System.out.println("Playing vlc file. Name: " + fileName); } public void playMp4(String fileName) { // Do nothing } } public class MediaAdapter implements MediaPlayer { AdvancedMediaPlayer advancedMusicPlayer; public MediaAdapter(String audioType) { if (audioType.equalsIgnoreCase("vlc")) { advancedMusicPlayer = new VlcPlayer(); } } public void play(String audioType, String fileName) { if (audioType.equalsIgnoreCase("vlc")) { advancedMusicPlayer.playVlc(fileName); } } }