Java基础01 从HelloWorld到面向对象

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

Java是完全面向对象的语言。Java通过虚拟机的运行机制,实现“跨平台”的理念。我在这里想要呈现一个适合初学者的教程,希望对大家有用。

"Hello World!"

先来看一个HelloWorld.java程序。这个程序在屏幕上打印出一串字符"Hello World!":

1 public class HelloWorld
2 {
3     public static void main(String[] args)
4     {
5         System.out.println("Hello World!");
6     }
7 }

程序中包括Java的一些基本特征:

  • 类(class):上面程序定义了一个类HelloWorld,该类的名字与.java文件的名字相同。
  • 方法(method):类的内部定义了该类的一个方法main。
  • 语句(statement):真正的“打印”功能由一个语句实现,即: System.out.println("Hello World!");

下面两点有关Java的书写方式:

  • Java中的语句要以;结尾 (与C/C++相同)。
  • 用花括号{}来整合语句,形成程序块。通过程序块,我们可以知道程序的不同部分的范围,比如类从哪里开始,到哪里结束。

编译与运行

Java程序要经过编译器编译才能执行。在Linux或Mac下,可以下载安装Java JDK

使用javac来编译。在命令行中输入下面语句编译:

$javac HelloWorld.java

当前路径下,将有一个名为HelloWorld.class的文件生成。

使用java命令来运行。Java会搜寻该类中的main方法,并执行。

$java HelloWorld

变量

计算机语言通常需要在内存中存放数据,比如C语言中的变量,Java也有类似的变量。Java和C语言都是静态类型的语言。在使用变量之前,要声明变量的类型。

变量(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)才能使用。在声明中,我说明变量的类型,赋予变量以特别名字,以便在后面的程序中调用它。你可以在程序中的任意位置声明变量。 比如:

 1 public class Test
 2 {
 3     public static void main(String[] args)
 4     {
 5         System.out.println("Declare in the middle:");
 6         int a;
 7         a = 5;
 8         System.out.println(a);  // print an integer
 9     }
10 }

  

上面a是变量名。可以在声明变量的同时,给变量赋值,比如 int a = 5;

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

上面的程序还可以看到,Java中,可用//引领注释。

数组

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

int[] a;

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

int[] a = new int[100];

这里创建了可以容纳100个整数的数组。相应的内存分配也完成了。

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

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

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

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

表达式

表达式是变量、常量和运算符的组合,它表示一个数据。1 + 1是常见的表达式。再比如:

 1 public class Test
 2 {
 3     public static void main(String[] args)
 4     {
 5         System.out.println("Declare in the middle:");
 6         int a;
 7         a = 5 + 1;
 8         System.out.println(a);  // print an integer
 9     }
10 }

上面的5 + 1也是一个表达式,等于6。

数学表达式

数学运算,结果为一个数值

1 + 2                  加法

4 - 3.4                减法

7 * 1.5                乘法

3.5 / 7                除法

7 % 2                 求余数

关系表达式

判断表达式是否成立。即一个boolean值,真假

a > 4.2                 大于

3.4 >= b              大于等于

1.5 < 9                小于

6 <= 1                小于等于

2 == 2                 等于

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)

 1 if (conditon1) {
 2     statements;
 3     ...
 4 }
 5 else if (condition2) {
 6     statements;
 7     ...
 8 }
 9 else {
10     statements;
11     ...
12 }

上面的condition是一个表示真假值的表达式。statements;是语句。

练习 写一个Java程序,判断2013年是否是闰年。

循环 (while)

while (condition) {

statements;

}

循环 (do... while)

do {

statements;

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

循环 (for)

for (initial; condition; update) {

statements;

}

跳过或跳出循环

在循环中,可以使用

break; // 跳出循环

continue; // 直接进入下一环

练习 写一个Java程序,计算从1加2,加3…… 一直加到999的总和

选择 (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类:

1 class Human
2 {
3     void breath()
4     {
5         System.out.println("hu...hu...");
6     }
7
8     int height;
9 }

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

  • 数据成员height是整数类型,可以用于存储一个整数。
  • 方法代表了对象所能进行的动作,也就是计算机所能进行的操作。方法可以接受参数,并能返回值。在breath()的定义中,breath后面的()中为参数列表。由于参数列表为空,所以breath()不接受参数。在breath()之前的void为返回值的类型,说明breath不返回值。

(方法与面向过程语言中的函数类似)

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

 1 public class Test
 2 {
 3     public static void main(String[] args)
 4     {
 5         Human aPerson = new Human();
 6         aPerson.breath();
 7         System.out.println(aPerson.height);
 8     }
 9
10 }
11
12 class Human
13 {
14     void breath()
15     {
16        System.out.println("hu...hu...");
17     }
18
19     int height;
20 }

在main方法中,使用new关键字创建对象。即使是来自同一个类的对象,各个对象占据的内存也不相同,即对象的身份也不同。

Human aPerson声明了aPerson对象属于Human类,即说明了对象的类型。

对象建立后,我们可以用 对象.数据成员 来引用数据成员,使用 对象.方法() 的方式来调用方法。正如我们在后面打印aPerson.height。

总结

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

对象,类

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

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

欢迎继续阅读“Java快速教程”系列文章

时间: 2024-10-03 04:32:13

Java基础01 从HelloWorld到面向对象的相关文章

Java基础01 从HelloWorld到面向对象(转载)

Java是完全面向对象的语言.Java通过虚拟机的运行机制,实现“跨平台”的理念. "Hello World!" public class HelloWorld{    public static void main(String[] args){        System.out.println("Hello World!");    }} 程序中包括Java的一些基本特征: 类(class):上面程序定义了一个类HelloWorld,该类的名字与.java文件

iOS基础 01 构建HelloWorld,剖析并真机测试

iOS基础 01 构建HelloWorld,剖析并真机测试 前言: 从控制台输出HelloWorld是我们学习各种语言的第一步,也是我们人生中非常重要的一步. 多年之后,我希望我们仍能怀有学习上进的心情,继续以HelloWorld去认识这世界上更多的东西. 本篇以HelloWorld作为切入点,向大家系统介绍什么事iOS应用以及如何使用Xcode创建iOS应用. 目录: 1. 创建HelloWorld工程 1.1. 设计界面 1.2. 真机测试 2. Xcode中的iOS工程模板 2.1. Ap

黑马程序员--Java基础--01基本概念

1.Java的三大技术架构 JAVAEE(Java Platform Enterprise Edition):  开发企业环境下的应用程序,主要针对web程序开发: JAVASE(Java Platform Standard Edition): 完成桌面应用程序的开发,是其他两者的基础 JAVAME(Java Platform Micro Edition): 开发电子消费产品和嵌入式设备,如手机中的程序 我对三大技术构架理解 1.三大技术是指哪三大技术呢? 答:三大技术分别指JAVAEE,JAV

AngularJS基础01 从HelloWorld说起

作者:arccosxy  转载请注明出处:http://www.cnblogs.com/arccosxy/ 准备工作 首先,创建一个名为index.html的HTML文件,代码如下: <!DOCTYPE html> <head> <title>Learning AngularJS</title> </head> <body> </body> </html> 接下来就是加载angular.js库,访问https:

java基础01

1. /** * JDK: (Java Development ToolKit) java开发工具包.JDK是整个java的核心! * 包括了java运行环境 JRE(Java Runtime Envirnment),一堆java工具和 * java基础的类库(Java API===>java应用程序接口,其实就是大牛给我们写好的一些class文件)! * * J2SE :标准版(standard edition) * * J2EE :企业版(enterprise edition) * * J2

Java基础学习(三)——面向对象思想

学习Java,就离不开学习面向对象的编程思想.Java语言是纯粹的面向对象的程序设计语言,这主要表现为Java完全支持面向对象的三种基本特征: 封装(encapsulation) 继承(inheritance) 多态(polymorphism) Java语言完全以对象为中心,Java程序的最小程序单位是类,整个Java程序由一个一个的类组成. 万物皆对象 “面向对象”(英语:Object Oriented,简称OO)是一种以事物为中心的编程思想. 面向对象程序设计(英语:Object-orien

6、JAVA基础-二维数组 及 面向对象理解

1:二维数组(理解) (1)元素是一维数组的数组. (2)格式: A:数据类型[][] 数组名 = new 数据类型[m][n]; B:数据类型[][] 数组名 = new 数据类型[m][]; C:数据类型[][] 数组名 = new 数据类型[][]{{...},{...},{...}}; D:数据类型[][] 数组名 = {{...},{...},{...}}; (3)案例(掌握): A:二维数组的遍历 B:二维数组的求和 C:杨辉三角形 2:两个思考题(理解) (1)Java中的参数传递

java基础学习笔记汇总之面向对象

面向对象的概述: 举例装大象到冰箱.而谈面向对象,就一定要说说面向过程. 面向过程:打开冰箱,装入大象,关上冰箱.这三步就是面向过程的思考方式,这种思想强调的是过程,也可以叫做动作.在C中是这种方式 面向对象:冰箱打开,冰箱存储,冰箱关闭.这就是面向对象的思考方式,这种方式强调是对象,也可以说是实例.在java,C++,C#中使用. 面向对象的特点 1.面向对象的思想符合人们惯有的思考方式. 2.面向对象的出现,将问题简单化 3.面向对象将过程中的执行者,变成了对象的指挥者. 类和对象的关系:

JAVA基础-01

Java学习笔记 1.面向对象的特征有哪些方面 (1)抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一是过程抽象,二是数据抽象. (2)继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法.对象的一个新类可以从现有的类中派生,这个过程称为类继承.新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父