美文网首页编程语言爱好者
从HelloWorld到面向对象

从HelloWorld到面向对象

作者: 编程鸭 | 来源:发表于2019-05-07 17:27 被阅读0次

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

    "Hello World!"

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

    publicclassHelloWorld

    {

    publicstaticvoidmain(String[] args)

    {

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

    }

    }

    程序中包括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中的变量类型如下:

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

    publicclassTest

    {

    publicstaticvoidmain(String[] args)

    {

    System.out.println("Declare in the middle:");

    inta;

    a =5;

    System.out.println(a);// print an integer

    }

    }

    上面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是常见的表达式。再比如:

    publicclassTest

    {

    publicstaticvoidmain(String[] args)

    {

    System.out.println("Declare in the middle:");

    inta;

    a =5+1;

    System.out.println(a);// print an integer

    }

    }

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

     

    数学表达式

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

    关系表达式

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

    布林表达式

    位运算

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

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

    控制结构

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

    选择 (if)

    if(conditon1) {

    statements;

    ...

    }

    elseif(condition2) {

    statements;

    ...

    }

    else{

    statements;

    ...

    }

    上面的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) {

    case1:

    statements;

    break;

    case2:

    statements;

    break;

    ...

    default:

    statements;

    break;

    }

    面向对象

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

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

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

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

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

     

    类与对象

    定义类的语法:

    classClassName

    {

    member1;

    member2;

    ...

    }

    我们定义一个human类:

    classHuman

    {

    voidbreath()

    {

    System.out.println("hu...hu...");

    }

    intheight;

    }

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

    数据成员height是整数类型,可以用于存储一个整数。

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

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

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

    publicclassTest

    {

    publicstaticvoidmain(String[] args)

    {

    Human aPerson =newHuman();

    aPerson.breath();

    System.out.println(aPerson.height);

    }

    }

    classHuman

    {

    voidbreath()

    {

    System.out.println("hu...hu...");

    }

    intheight;

    }

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

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

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

    总结

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

    对象,类

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

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

    如果你对编程感兴趣或者想往编程方向发展,可以关注微信公众号【筑梦编程】,大家一起交流讨论!小编也会每天定时更新既有趣又有用的编程知识!

    相关文章

      网友评论

        本文标题:从HelloWorld到面向对象

        本文链接:https://www.haomeiwen.com/subject/srsyoqtx.html