java 快速上手开发 2

1. 类与对象

Java 是面向对象语言,一切代码都写在类中。类定义了一类事物的属性(字段)和行为(方法)。

复制代码
public class Person {
    // 字段
    String name;
    int age;

    // 方法
    public void introduce() {
        System.out.println("我叫" + name + ",今年" + age + "岁。");
    }
}

创建对象:

复制代码
Person person = new Person();
person.name = "张三";
person.age = 25;
person.introduce();

2. 构造器与 this

构造器用于创建对象时初始化字段,名字与类名相同,没有返回类型。

复制代码
public class Person {
    String name;
    int age;

    // 带参构造器
    public Person(String name, int age) {
        this.name = name;   // this 指当前对象
        this.age = age;
    }
}

使用构造器:

复制代码
Person p = new Person("李四", 30);

this 用于区分字段和参数同名的情况。

3. 封装

封装是将字段设为 private,通过公共的 getter/setter 访问,保护数据安全

复制代码
public class Person {
    private String name;
    private int age;

    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
    public int getAge() { return age; }
    public void setAge(int age) { this.age = age; }
}

在 Spring 项目中,常用 Lombok 的 @Data 注解自动生成这些方法,原理相同。

4. 继承(extends)

子类继承父类,获得父类所有非私有成员,并可以扩展自己的属性和方法。

复制代码
public class Animal {
    private String name;

    public Animal(String name) { this.name = name; }
    public void eat() { System.out.println(name + " is eating."); }
    public String getName() { return name; }
}

public class Dog extends Animal {
    public Dog(String name) { super(name); }   // 调用父类构造器
    public void bark() { System.out.println(getName() + " says Woof!"); }
}
  • super(...) 调用父类构造器,必须在子类构造器第一行。

  • Java 是单继承,一个类只能有一个父类。

5. 方法重写(Override)

子类可以重写父类的方法,签名必须一致,使用 @Override 注解。

复制代码
public class Cat extends Animal {
    public Cat(String name) { super(name); }

    @Override
    public void eat() {
        System.out.println(getName() + " is eating fish.");
    }
}

6. 多态

父类引用可以指向子类对象,调用方法时动态绑定到实际对象类型。

复制代码
Animal animal = new Cat("Kitty");
animal.eat();   // 输出 Kitty is eating fish.

这是面向对象的核心特性之一,也是 Spring 框架中大量使用的设计模式(例如 UserRepository 接口注入实现类代理)。

相关推荐
子兮曰1 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
小羊没烦恼!1 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
子兮曰1 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
俊昭喜喜里1 天前
java中的继承和多态的区别
java
小羊没烦恼!1 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
前端小万1 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝1 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
譕痕1 天前
JSONObject与JSONArray封装数据格式区别
java·json
胡写代码1 天前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖1 天前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商