前端转java需要提前学明白的 class 类

🎯 前端转 Java 后端:彻底搞懂的 class 类基础

从前端开发转向 Java 后端,是一个热门而高价值的技术跨越。虽然 JavaScript(尤其是 ES6+)中也有 class 的语法,但 Java 是一种严格面向对象的语言,对类的理解要更加深入、彻底。而且使用频率更高

🧠 Why 先搞懂类(class)?

在前端中,我们可能会用 class 来组织 Vue 组件、React 类组件、或者写 TypeScript:

class Person {
  constructor(name) {
    this.name = name;
  }
  sayHi() {
    console.log(`Hi, I'm ${this.name}`);
  }
}

Java 的类语法看起来很像,但底层理念和机制却大不同

  • Java 是强类型语言(类型必须明确)

  • Java 中一切都是对象(除了基本类型)

  • Java 中的类不仅仅是组织代码的结构,还是创建对象、抽象行为的核心


🧱 Java 中 class 的基本结构

先看一个最简单的 Java 类:

public class Person {
    // 属性(字段)
    String name;
    int age;

    // 构造函数
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // 方法
    public void sayHi() {
        System.out.println("Hi, I'm " + name + ", " + age + " years old.");
    }
}

💡 与 JavaScript 的关键区别:

JavaScriptJava
动态类型静态强类型
方法默认可访问需要加 public/private
this 指向变化(函数作用域)this 永远指向当前对象
类可以动态添加属性属性必须声明、初始化
没有构造方法重载支持多个构造函数(重载)

🚀 创建对象与使用类

public class Main {
    public static void main(String[] args) {
        Person p = new Person("Alice", 25);
        p.sayHi(); // 输出:Hi, I'm Alice, 25 years old.
    }
}

☝️ Java 的类和对象用得非常频繁,是业务逻辑、数据模型的核心构件。


🔐 可见性控制符(访问修饰符)

Java 使用关键字控制类、方法、属性的访问范围:

修饰符含义
public公开,任何类都可访问
private私有,仅类内部可访问
protected受保护,同包或子类可访问
默认(包可见)同包可访问

这就是封装(Encapsulation)概念的体现 —— 控制数据暴露范围。


🧬 类与面向对象三大特性

Java 面向对象编程(OOP)最核心的三大特性:

1. 封装(Encapsulation)

public class User {
    private String password;

    public void setPassword(String pwd) {
        if (pwd.length() >= 6) {
            this.password = pwd;
        }
    }

    public String getPassword() {
        return "******"; // 防止直接暴露
    }
}

使用 private + getter/setter 实现保护。


2. 继承(Inheritance)

public class Animal {
    public void speak() {
        System.out.println("Animal speaks.");
    }
}

public class Dog extends Animal {
    public void speak() {
        System.out.println("Dog barks.");
    }
}

子类 Dog 继承父类 Animal,可复用/重写方法。


3. 多态(Polymorphism)

public class Main {
    public static void main(String[] args) {
        Animal a = new Dog(); // 多态:父类引用指向子类对象
        a.speak(); // 输出:Dog barks.
    }
}

这对于接口解耦扩展性设计至关重要。


🔁 构造函数重载,js Calss中无这个

Java 支持多个构造函数(同名不同参数):

public class Book {
    String title;
    double price;

    public Book(String title) {
        this.title = title;
    }

    public Book(String title, double price) {
        this.title = title;
        this.price = price;
    }
}


🔄 static 关键字

static 用于定义类的静态属性或方法,无需创建对象即可访问。

public class MathUtil {
    public static int add(int a, int b) {
        return a + b;
    }
}

// 使用方式
int result = MathUtil.add(3, 5);


✅ 前端转 Java,掌握 class 个人感觉是需要提前搞清楚的

Java 语言基础推荐程度理解难度
class 类、对象★★★★★中等
访问修饰符★★★★☆中等
构造函数/重载★★★★☆
继承、多态★★★★☆中等略难
static 静态属性★★★☆☆
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星空下的DeppBing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值