Java基础01 从HelloWorld到面向对象

来源:互联网 发布:ubuntu下uefi安装win 编辑:程序博客网 时间:2024/05/06 20:24

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

 

Java是完全面向对象的语言。通过虚拟机的运行机制,它打造了“跨平台”的理念,吸引了许多程序员加入Java阵营。近年来,Android开发为Java的流行助力不少。我在这里想要呈现一个适合初学者的教程,希望对大家有用。

 

"Hello World!"

我们先来看一个HelloWorld.java程序:

复制代码
public class HelloWorld{    public static void main(String[] args)    {        System.out.println("Hello World!");    }}
复制代码

上面的程序定义了一个类(class)HelloWorld,然后定义了该类的一个方法(method)main。main方法中有一个语句:

System.out.println("Hello World!");

它的功能是向终端输出字符串"Hello World!"。注意,Java中的语句要以;结尾 (与C/C++相同)。

 

使用javac来编译:

$javac HelloWorld.java

当前路径下将HelloWorld.class文件生成。

 

使用java命令来运行,java后面的参数为与文件同名的类名(HelloWorld)。Java会搜寻该类中的main方法,并运行。

$java HelloWorld

 

变量

变量(variable)在内存中占据一定的空间,并在该空间中存储某个类型的值。Java中的变量如下:

          存储大小     例值     注释

byte      1byte        3      字节

int       4bytes       3      整数

short     2bytes       3      短整数

long      8bytes       3      长整数

float     4bytes     1.2      单精度浮点数

double    8bytes     1.2      双精度浮点数

char      2bytes     'a'      字符

boolean   1bit      true      布尔值

在Java中,变量需要先声明(declare)才能使用。你可以在程序中的任意位置声明变量。 比如:

复制代码
public class Test{    public static void main(String[] args)    {        System.out.println("Declare in the middle:");        int a;        a = 5;        System.out.println(a);  // print an integer    }}
复制代码

在Java中,可以用//引领注释。可以在声明变量的同时给变量赋值,比如 int a = 5;

“变量”的概念实际上来自于面向过程编程。在Java中,所谓的变量实际上是“基本类型” (premitive type)。我们将在类的讲解中更多深入。

 

Java中有数组(array)。数组包含相同类型的多个值。我们用下面方法来声明一个整数数组:

int[] a;

注意该写法与C数组的区别。

在声明数组时,数组所需的空间并没有真正分配给数组。我们可以在声明的同时,用new来创建数组所需空间:

int[] a = new int[100];

还可以在声明的同时,给数组赋值(数组的大小也同时确定)。

int[] a = new int[] {1, 3, 5, 7, 9};

我们使用int[i]来调用数组的i下标元素。i从0开始。

其他类型的数组与整数数组相似。

 

表达式

表达式是变量、常量和运算符的组合,它等于一个新的值。1 + 1是常见的表达式。比如:

复制代码
public class Test{    public static void main(String[] args)    {        System.out.println("Declare in the middle:");        int a;        a = 5 + 1;        System.out.println(a);  // print an integer    }}
复制代码

 

数学表达式,返回一个数值

+ 2                  加法

- 3.4                减法

* 1.5                乘法

3.5 / 7                除法

% 2                  求余数

 

关系表达式,返回一个boolean值

> 4.2                大于

3.4 >= b               大于等于

1.5 < 9                小于

<= 1                 小于等于

== 2                 等于

!= 2                 不等于

 

布林表达式,返回一个boolean值

true && false          and

(3 > 1) || (2 == 1)    or

!true                  not

 

位运算,对整数的二进制形式逐位进行逻辑运算,返回整数

&                      and

|                      or

^                      xor

~                      not

5 << 3                 0b101 left shift 3 bits

6 >> 1                 0b110 right shift 1 bit

 

还有下列在C中常见的运算符,我会在用到的时候进一步解释:

m++                    变量m加1

n--                    变量n减1

condition ? x1 : x2   condition为一个boolean值。根据condition,取x1或x2的值

 

控制结构

Java中控制结构(control flow)的语法与C类似。它们都使用{}来表达隶属关系。

 

选择 (if)

if (conditon1) {

    statements;

}

else if (condition2) {

    statements;

}

else {

    statements;

}

 

循环 (while)

while (condition) {

    statements;

}

 

循环 (do... while)

do {

    statements;

} while(condition);  // 注意结尾的;

 

循环 (for)

for (initial; condition; update) {

    statements;

}

在循环中,可以使用

break; // 跳出循环

continue; // 直接进入下一环

 

选择 (switch)

switch(expression) {

    case 1:

        statements;

        break;

    case 2:

        statements;

        break;

    ...

    default:

        statements;

        break;

}

 

面向对象

“对象”是计算机抽象世界的一种方式。“面向对象”可以有多种理解方式,下面是我的理解:

1. 世界上的每一个事物都可以称为一个对象(object),比如张三。对象有身份(Identity)状态(State)行为(Behavior)

2. 对象的状态由数据成员(data member)表示。数据成员又被称作域(field)。我们用其他对象作为该对象的数据成员。比如一个表示身高的整数,比如一个鼻子。

3. 对象的行为由成员方法(member method)表示。我们简称为方法(method)。一个对象可以有多个方法,比如呼吸,睡觉

4. 对象可以归类(class),或者说归为同一类型(type)。同一类型的对象有相同的方法,有同类型的数据成员。某个类型的一个对象被称为该类型的一个实例(instance)

 

 

类与对象

 

 

定义类的语法:

class ClassName

{

    member1;

    member2;

    ...

}

 

我们定义一个human类:

复制代码
class Human {    void breath()    {        System.out.println("hu...hu...");    }
int height;}
复制代码

 在{}范围内,Human类有两个成员: 一个数据成员height,一个方法breath()。

方法代表了对象所能进行的动作,也就是计算机所能进行的操作。OOP中的方法对应面向过程中的函数。方法可以接受参数,并能返回值。

数据成员是一个int基础类型的对象height。

方法与C语言的函数类似。在breath()的定义中,breath后面的()中为参数列表。由于参数列表为空,所以breath()不接受参数。在breath()之前的void为返回值的类型,说明breath不返回值。

 

现在,我们创建对象aPerson,并调用对象的方法breath:

复制代码
public class Test{    public static void main(String[] args)    {        Human aPerson = new Human();        aPerson.breath();
System.out.println(aPerson.height); }}
class Human{ void breath() { System.out.println("hu...hu..."); } int height;}
复制代码

我们在main方法中,使用new关键字为对象分配所需的内存。各个对象占据的内存不同,所以它们的身份也不同。

Human aPerson声明了aPerson的类型。

我们用 对象.数据成员 来引用数据成员,使用 对象.方法() 的方式来调用方法。

 

总结

Java的许多语法形式与C/C++类似,但在细节和具体实现上又有差别,需要小心。

对象,类

对象: 方法,域(数据成员)

Java是完全面向对象的语言。

0 0
原创粉丝点击