面向对象
类与构造方法
classPerson{privateString name;// 私有属性,保护数据安全publicStringgetName(){returnname;}// 向外提供接口publicvoidsetName(String name){this.name=name;}}关键字
关键字 同一个类 同一个包 不同包子类 任意地方
private
default (不写)
protected
public
this,super
枚举
publicenumOrderStatus{// 1. 定义常量实例(必须写在最前面) PAID(200, "已付款"),SHIPPED(300,"已发货");// 2. 定义成员变量与构造函数privatefinal int code;privatefinal String desc;privateOrderStatus(int code,String desc){this.code=code;this.desc=desc;}// 3. 定义获取数据的方法publicStringgetDesc(){returndesc;}}继承
// 父类:通用特征classAnimal{protectedString name;publicvoideat(){System.out.println(name+" 正在进食");}}// 子类:特化特征classDogextendsAnimal{publicDog(String name){this.name=name;// 继承父类成员变量 }publicvoidbark(){System.out.println(name+" 汪汪叫");// 子类特有方法 }}多态
// 1. 定义父类classAnimal{publicvoidspeak(){System.out.println("动物发出声音");}}// 2. 子类重写方法classDogextendsAnimal{@Overridepublicvoidspeak(){System.out.println("小狗汪汪叫");}}classCatextendsAnimal{@Overridepublicvoidspeak(){System.out.println("小猫喵喵叫");}}// 3. 测试多态publicclassTest{publicstaticvoidmain(String[]args){Animal myDog=newDog();// 向上转型Animal myCat=newCat();myDog.speak();// 输出:小狗汪汪叫 myCat.speak(); // 输出:小猫喵喵叫}}抽象类和抽象方法
// 1. 定义抽象类:不能被实例化abstractclassShape{// 抽象方法:没有方法体,只有声明publicabstract doublegetArea();// 普通方法:子类可以直接继承使用publicvoidshow(){System.out.println("这是一个图形");}}// 2. 子类必须实现所有的抽象方法 class CircleextendsShape{privatedouble radius;publicCircle(double radius){this.radius=radius;}@OverridepublicdoublegetArea(){returnMath.PI*radius*radius;}}接口
// 1. 定义接口interfacePayment{// 接口中的变量默认是 public static finalStringCURRENCY="CNY";// 抽象方法,默认是 public abstractvoidpay(double amount);}// 2. 类通过 implements 关键字实现接口classAliPayimplementsPayment{@Overridepublicvoidpay(double amount){System.out.println("使用支付宝支付了:"+amount+CURRENCY);}}classWeChatPayimplementsPayment{@Overridepublicvoidpay(double amount){System.out.println("使用微信支付了:"+amount+CURRENCY);}}内部类和匿名内部类
- 内部类
classOuter{privateString secret="外部类私有变量";classInner{voidshow(){// 直接访问外部私有成员System.out.println("访问:"+secret);}}}// 使用:必须先 new 外部类,再 new 内部类Outer.Innerin=newOuter().newInner();- 匿名内部类
interfaceGreeting{voidsayHello();}publicclassTest{publicstaticvoidmain(String[]args){// 直接在 new 的时候实现接口Greeting g=newGreeting(){@OverridepublicvoidsayHello(){System.out.println("你好,匿名内部类!");}};g.sayHello();}}字符串的常见方法
Arraylist
importjava.util.ArrayList;publicclassListDemo{publicstaticvoidmain(String[]args){// 1. 创建集合:泛型限定只能存 StringArrayList<String>list=newArrayList<>();// 2. 增:添加元素list.add("Java");list.add("Python");list.add("Go");// 3. 删:按索引或对象删除list.remove(2);// 删掉 "Go"// 4. 改:修改指定位置元素list.set(1,"DeepSeek");// 5. 查:获取元素与长度String first=list.get(0);int size=list.size();// 6. 遍历:常用增强 for 循环for(String item:list){System.out.println(item);}}}