CS106A 学习笔记(5):Hello, Java!

程序编译

将用某种编程语言写成的源代码(Source Code),转换成另一种编程语言——目标语言(Object Code)。

编译的主要目的是将便于人编写、阅读、维护的高级编程语言写作的源代码程序,翻译为计算机能够解读、运行的低阶机器语言的程序,也就是可执行文件。

源代码一般为高阶语言(High-level language),如C、C++、C# 、Java等,而目标语言则是汇编语言或目标机器的目标代码(Object code),有时也称作机器代码(Machine code)。

一个现代编译器的主要工作流程如下: 源代码(source code)→ 预处理器(preprocessor)→ 编译器(compiler)→ 汇编程序(assembler)→ 目标代码(object code)→ 链接器(Linker)→ 可执行文件(executables)

Java 通过虚拟机(Java Virtual Machine,JVM)进行编译。源代码通过编译器翻译成class文件,即中间语言,中间语言通过虚拟机(JVM)编译为计算机能够理解的目标语言。

javavirtualmachine

Java 特性:

  • 跨平台
  • 面向对象
  • 泛型编程

面向对象的程序设计(Object-oriented programming,OOP)

对象指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。

类(Class)定义了一件事物的抽象特点。通常来说,类定义了事物的属性和它可以做到的(它的行为)。一个类的方法和属性被称为“成员”。

对象(Object)是类的实例。一个具体对象属性的值被称作它的“状态”。

类是抽象的,对象是具体的。

ACM Program Hierarchy

ProgramHierarchy

第一个Java程序

/*
 * File:    HelloJava.java
 * -----------------------------
 * This is my first Java program.
 * It displays 'Hello, Java!' on the screen.
 */

import acm.graphics.*;
import acm.program.*;

public class HelloJava extends GraphicsProgram {
    public void run() {
        add( new GLabel( "Hello, Java!", 100, 75 ) );
    }
}

执行结果:

hello java

控制台程序(ConsoleProgram)

/*
 * File:    Add2Integers.java
 * ----------------------------
 * A simple Console Program to add two integers.
 */

import acm.program.*;

public class Add2Integers extends ConsoleProgram {

    public void run() {
        println( "This Program adds two numbers: " );
        int n1 = readInt( "Enter n1: " );
        int n2 = readInt( "Enter n2: " );
        int total = n1 + n2;
        println( "The total is " + total + " .");
    }
}

执行结果:

add2integers

图形程序(GraphicsProgram)

可用类:

  • 文本标签: GLabel
  • 矩形: GRect
  • 椭圆: GOval
  • 线条: GLine

EOF

文章标签:

发表评论

82M2