服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Java基础之从HelloWorld到面向对象

Java基础之从HelloWorld到面向对象

2021-12-24 13:16Vamei Java教程

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

1、 "Hello World!"

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

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

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

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

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

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

2、编译与运行

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

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

?
1
$javac HelloWorld.java

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

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

?
1
$java HelloWorld

3、变量

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

变量(variable)占据一定的内存空间。不同类型的变量占据不同的大小。Java中的变量类型如下:

Java基础之从HelloWorld到面向对象

在Java中,变量需要先声明(declare)才能使用。在声明中,我说明变量的类型,赋予变量以特别名字,以便在后面的程序中调用它。你可以在程序中的任意位置声明变量。 比如:

?
1
2
3
4
5
6
7
8
9
10
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
    }
}

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

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

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

4、数组

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开始。

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

5、表达式

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

?
1
2
3
4
5
6
7
8
9
10
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
    }
}

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

5.1 数学表达式

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

1 + 2                  加法

4 - 3.4                减法

7 * 1.5                乘法

3.5 / 7                除法

7 % 2                  求余数 

5.2关系表达式

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

a > 4.2                大于

3.4 >= b               大于等于

1.5 < 9                小于

6 <= 1                 小于等于

2 == 2                 等于

2 != 2                 不等于

5.3 布林表达式

两个boolean值的与、或、非的逻辑关系

true && false          and

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

!true                  not

5.4 位运算

对整数的二进制形式逐位进行逻辑运算,得到一个整数

&                      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的值

6、控制结构

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

6.1 选择 (if)

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

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

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

6.2 循环 (while)

?
1
2
3
4
5
while (condition) {
 
    statements;
 
}

6.3 循环 (do... while)

?
1
2
3
4
5
6
7
do {
 
    statements;
 
} while(condition);  // 注意结尾的;

6.4 循环 (for)

?
1
2
3
4
5
6
7
for (initial; condition; update) {
 
    statements;
 
}

6.5 跳过或跳出循环

在循环中,可以使用

?
1
2
3
break; // 跳出循环
 
continue; // 直接进入下一环

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

6.6 选择 (switch)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
switch(expression) {
 
    case 1:
 
        statements;
 
        break;
 
    case 2:
 
        statements;
 
        break;
 
    ...
 
    default:
 
        statements;
 
        break;
 
}

7、面向对象

“对象”是计算机抽象世界的一种方式。“面向对象”可以用很多方式表达。下面是一种并不精确,但比较直观的理解方式:

  • 世界上的每一个事物都可以称为一个对象(object),比如张三。对象有身份(Identity),状态(State)和行为(Behavior)。
  • 对象的状态由数据成员(data member)表示。数据成员又被称作域(field)。我们用其他对象作为该对象的数据成员。比如一个表示身高的整数,比如一个鼻子。
  • 对象的行为由成员方法(member method)表示。我们简称为方法(method)。一个对象可以有多个方法,比如呼吸,睡觉。
  • 对象可以归类(class),或者说归为同一类型(type)。同一类型的对象有相同的方法,有同类型的数据成员。某个类型的一个对象被称为该类型的一个实例(instance)。

定义类的语法:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
class ClassName
 
{
 
    member1;
 
    member2;
 
    ...
 
}

我们定义一个human类:

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

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

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

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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对象属于Human类,即说明了对象的类型。

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

8、总结

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

对象,类

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

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

到此这篇关于Java基础之从HelloWorld到面向对象的文章就介绍到这了,更多相关Java HelloWorld到面向对象内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/vamei/archive/2013/03/14/2958654.html

延伸 · 阅读

精彩推荐
  • Java教程xml与Java对象的转换详解

    xml与Java对象的转换详解

    这篇文章主要介绍了xml与Java对象的转换详解的相关资料,需要的朋友可以参考下...

    Java教程网2942020-09-17
  • Java教程Java实现抢红包功能

    Java实现抢红包功能

    这篇文章主要为大家详细介绍了Java实现抢红包功能,采用多线程模拟多人同时抢红包,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙...

    littleschemer13532021-05-16
  • Java教程升级IDEA后Lombok不能使用的解决方法

    升级IDEA后Lombok不能使用的解决方法

    最近看到提示IDEA提示升级,寻思已经有好久没有升过级了。升级完毕重启之后,突然发现好多错误,本文就来介绍一下如何解决,感兴趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程Java8中Stream使用的一个注意事项

    Java8中Stream使用的一个注意事项

    最近在工作中发现了对于集合操作转换的神器,java8新特性 stream,但在使用中遇到了一个非常重要的注意点,所以这篇文章主要给大家介绍了关于Java8中S...

    阿杜7482021-02-04
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    这篇文章主要介绍了Java使用SAX解析xml的示例,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程小米推送Java代码

    小米推送Java代码

    今天小编就为大家分享一篇关于小米推送Java代码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧...

    富贵稳中求8032021-07-12
  • Java教程20个非常实用的Java程序代码片段

    20个非常实用的Java程序代码片段

    这篇文章主要为大家分享了20个非常实用的Java程序片段,对java开发项目有所帮助,感兴趣的小伙伴们可以参考一下 ...

    lijiao5352020-04-06
  • Java教程Java BufferWriter写文件写不进去或缺失数据的解决

    Java BufferWriter写文件写不进去或缺失数据的解决

    这篇文章主要介绍了Java BufferWriter写文件写不进去或缺失数据的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望...

    spcoder14552021-10-18