java ap_AP计算机教程1:Java基础

原标题:AP计算机教程1:Java基础

Java是一种编程语言,这意味着我们可以使用Java来告诉计算机要做什么。计算机实际上并不会讲Java,因此我们必须将Java源文件(它们以.java结尾)编译(转换)为类文件(它们以.class结尾)。

如果计算机上已加载Java开发环境,则可以使用Java命令javac在命令行上编译Java源代码。你可以使用java ClassName执行你的Java class中的main method。

db1802614d3373f53b8184a80f9c12f4.png

你可以将Java源代码复制到文件中并保存,如果你想在本地计算机上运行它。确保使用“.java”作为扩展名且文件命名与class的名字一致。 Java中的所有代码(语句)必须是class的一部分,并且class名必须与文件名匹配。

你也可以在本地计算机上使用集成开发环境。我们推荐Dr Java,但是还有很多其他不错的选择,比如JGrasp,BlueJ,Greenfoot和Eclipse。

在Java中,class指的不是你在学校学习的课程。class用于定义一个类型,即该class的object需要知道哪些对象(数据或字段)和做什么(行为或方法)。有很多class是Java语言的一部分,但是你目前只需要掌握AP计算机考试所考察的一小部分类(String,Math,System,List,ArrayList)。 Java的真正威力在于能够创建自己的class(定义自己的类型)。

class创建object,object在面向对象的程序中完成实际的工作。你可以把class想成饼干模子,它用被用来做饼干(object),你想做多少就能做多少。一个class也可以被认为是产生object的工厂。

c4b9f7d3109dac4897907283d09ffa98.png

你可以将一个class视为类型或分类。下面的图片有很多猫(猫class的object)。

ab73b9f1b674fbe6ff54970965d5afb6.png

如果你去一家餐馆,你会被接待员带到空座位上,服务员会帮助你点菜,厨师则会为你烹制佳肴。接待员,服务员和厨师是什么意思?这些是餐厅雇员的分类或类型。 Java的思路和这个很相似。当我们创建一个新class时,我们正在为计算机定义一种新类型。每种class都可以具有能力或行为(在Java中称为method)和属性(在Java中称为field)。在定义class之后,可以使用它来创建该class的object。从class创建的所有object都将具有该class中定义的属性和能力/行为。

class的例子

在Java中定义一个class需要用关键字public class加上为class起的名字。class的主体需要用花括号{和}包括起来。

publicclass ClassName

{

}

以下是Java的一个示例class。 Java中的class可以包含field(数据或属性),constructor(初始化field的method),method(行为)以及可以用来进行测试的main method。不过这些项目中的任何一个对于class来说都不是必要的。以下内容可以通过编译(compile),但是如果你试图让计算机执行它,觉得会发生什么呢?

publicclass FirstName

{

}

class FirstClass里面空空如也,所以当我们让计算机执行时,它也不知道该干什么。

当使用Java虚拟机执行一个class时,它将会从main method开始。以下的class会在屏幕上和你打招呼。

publicclass SecondClass

{

publicstaticvoidmain(String[] args)

{

System.out.println("Hi there!");

}

}

class SecondClass并没有用到什么面向对象的原理。里面唯一的内容是作为staticmethod(这类method作用于class本身)的main,而没有任何object method(这类方法可以被class的各个object调用)。现在让我们来创建一个每个object表示一个人的class。每人都有一个名字和一个手机号码,我们将把这些储存在class Person的field里。我们还可以提供method来存取这些数据。除此之外,我们提供一个constructor来在object最初创建时将数据初始化。

publicclass Person

{

/// fields

privateString name;

privateString cell;

/// constructors

publicPerson(String theName, String theCell)

{

this.name = theName;

this.cell = theCell;

}

methods ///

publicStringgetName()

{

returnthis.name;

}

publicvoidsetName(String theName)

{

this.name = theName;

}

publicStringgetCell()

{

returnthis.cell;

}

publicvoidsetCell(String theCell)

{

this.cell = theCell;

}

publicStringtoString(){return"name: " + this.name +

", cell: " + this.cell; }

main for testing //

publicstaticvoidmain(String[] args)

{

Person p1 = newPerson("Deja", "555 132-3253");

System.out.println(p1);

Person p2 = newPerson("Avery", "555 132-6632");

System.out.println(p2);

}

}

运行Java程序

当你执行Java程序时,你需要用某种方式把带有main method的class名提供给Java虚拟机,之后程序就会从这里开始执行。对于面向对象程序,main method应当创立执行任务的object并操作它们实现程序的功能。以下是class Person的main method。

main for testing //

publicstaticvoidmain(String[] args)

{

Person p1 = newPerson("Alex", "138 9392 3829");

System.out.println(p1);

Person p2 = newPerson("Jane", "189 8283 1256");

System.out.println(p2);

}

可以为main method创建一个专门的class,但这只是一个习惯问题。为每个class创建自己的main method来测试相关的method和field也是毫无问题的。class Person的main method将会创立两个object并使用toString method来显示他们的值。当执行System.out.println(object)时,Java会自动调用该object的class中定义的toStringmethod。

可以尝试改变姓名和手机号码,然后再次运行,看看结果是否会有什么改变。

field——实例变量

field存储object的数据。为了让object能够完成程序给定的任务,需要把状态和信息记录到field里。field又被称作实例变量(Instance Variables)、对象变量(object variable)或属性(properties)。

在AP计算机考试中,你遇到的field都是private的。可以把private理解成你的日记,只有你自己能直接查看它。同理,private field只能被class内部的代码调用。

class Person声明了两个field,name与cell。前者指的是姓名,后者指的是手机号。这两项资料都是你可能需要了解的个人信息。

/// fields

privateString name;

privateString cell;

constructor

constructor并不真的构造object(这是new的工作)。object由class派生而来,之后执行constructor来初始化field或实例变量的值。在AP计算机考试中,你只和public的constructor打交道。

class Person有一个接受两个参数的constructor:存储为String的姓名和存储为String的手机号。constructor的鲜明特点是名字和class名完全一致,且没有返回类型。

/// constructors

publicPerson(String theName, String theCell)

{

this.name = theName;

this.cell = theCell;

}

method

method定义一个object能做什么或其行为。

在AP计算机考试中,你遇到的method都是public的,可以在class之外调用。

class Person有读取姓名/手机号以及存储姓名/手机号的method。从object中获得信息的method又称getter或accessor,给field赋值的方法又称setter或mutator。

methods ///

publicStringgetName()

{

returnthis.name;

}

publicvoidsetName(String theName)

{

this.name = theName;

}

publicStringgetCell()

{

returnthis.cell;

}

publicvoidsetCell(String theCell)

{

this.cell = theCell;

}

publicStringtoString(){return"name: " + this.name + ",

cell: " + this.cell; }

学AP计算机,上apcompsci.cn!返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值