💻 第七章 成为会使用面向对象编程的程序员吧
📄 一句话概括

Java 与 .NET 从语言语法到框架类库全建在 OOP 上——想在这两大平台干活,OOP 不是选修课而是敲门砖。

📝 本节和前面几节的关系

全章收官。这本讲计算机原理的书为何在末尾点名 Java 和 .NET——因为它们是 OOP 落地最广的两块大陆。

一、Java:天生 OOP

1995 年 Sun 推出 Java,主打【一次编写、到处运行】:源码编译成字节码,跑在 JVM 虚拟机上。 Java 里一切代码都写在类里——连程序入口 main 都必须住在某个类中,没有类寸步难行。 11 课 Java 基础的 100 篇笔记,正是把本章这套 OOP 知识从语法到实战的完整展开。

二、.NET:微软的对应物

微软推出的 .NET 框架(代表语言 C#)同样是一切皆类的路线:代码编译成中间语言,跑在 CLR 运行时上。 概念一一对应:JVM 对 CLR、包(package)对命名空间(namespace)、Java 标准库对 .NET 类库。 学会了本章的 OOP 思想,两大平台只是方言差别——思想是同一套普通话。

三、回到全书主线

本书走到这里:硬件(一、二章)→ 汇编与流程(三、四章)→ 算法与数据结构(五、六章)→ OOP(本章)——技术主线只剩最后一环。 下一章数据库是【数据的管理】,第十二章 SE 是【工程的监管】——从造机器到管工程的完整产业链。 为什么教材在这里点 Java 和 .NET 的名?因为现实中的系统多用它们建成——原理课的终点要接上现实的地气。

四、动手 Demo:同一个 Dog 类在两大平台

同一条狗,Java 版与 C# 版对照——概念一一对应,思想完全相同。

# 用 Python 打印同一个 Dog 类的两个平台版本对照
java_ver = '''public class Dog {
    private String name;
    public Dog(String name) { this.name = name; }
    public void speak() {
        System.out.println("汪汪");
    }
}'''
print(java_ver)

实跑输出:

--------------------------------------------------------------------
在 Java 和 .NET 中有关 OOP 的知识不能少
--------------------------------------------------------------------

Java 和 .NET 从语法到类库全建在 OOP 上。同一个 Dog 类,
两边长一个样:

    [Java]
    public class Dog {
        private String name;
        public Dog(String name) { this.name = name; }
        public void speak() {
            System.out.println("汪汪");
        }
    }

    [.NET (C#)]
    public class Dog {
        private string name;
        public Dog(string name) { this.name = name; }
        public void Speak() {
            Console.WriteLine("汪汪");
        }
    }

  概念         Java                 .NET (C#)
  -------------------------------------------------------
  运行环境     JVM 虚拟机           CLR 运行时
  组织单位     包 (package)         命名空间 (namespace)
  代码归宿     一切代码都在类里     一切代码都在类里

在两大平台上, 不会 OOP 寸步难行——这是本章标题的由来。
11 课 Java 基础 100 篇, 正是这套 OOP 知识的代码级完整展开。

两版逐行对得上:String 对 string、System.out.println 对 Console.WriteLine——方言不同,思想同一。 本章学的是普通话,11 课 Java 基础是其中一门方言的精读——两课互相印证。

30 秒实验

  1. 把 7.9 的 Animal 家族翻译成 Java 版类定义(纸上写即可)。
  2. 对照表复习:JVM/CLR、包/命名空间各是什么。

常见误区

  1. 以为 Java 和 .NET 是竞争的两种东西(语言对比框架)——Java 是语言+平台,.NET 是平台+多语言。
  2. 以为 OOP 学完就能直接上手两大平台——还需学各平台的类库与工具链,但 OOP 是共同的底座。
自测三问(点开对答案) 1. Java 程序的入口 main 写在哪里? —— 写在某个类里——Java 一切代码都在类中。 2. JVM 与 CLR 分别属于哪个平台? —— JVM 属 Java,CLR 属 .NET——概念一一对应。 3. 本章在全书技术主线中的位置? —— 硬件→汇编→流程→算法→数据结构→OOP 的技术收官一环。

相关笔记