Java_基础题(357页).doc

上传人:1595****071 文档编号:34808163 上传时间:2022-08-18 格式:DOC 页数:347 大小:1.23MB
返回 下载 相关 举报
Java_基础题(357页).doc_第1页
第1页 / 共347页
Java_基础题(357页).doc_第2页
第2页 / 共347页
点击查看更多>>
资源描述

《Java_基础题(357页).doc》由会员分享,可在线阅读,更多相关《Java_基础题(357页).doc(347页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、-Java 基础语法一个Java程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 类:类是一个模板,它描述一类对象的行为和状态。 方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。第一个Java程序下面看一个简单的Java程序,它将打印字符串Hello Worldpublic class M

2、yFirstJavaProgram /* 第一个Java程序. * 它将打印字符串 Hello World */ public static void main(String args) System.out.println(Hello World); / 打印 Hello World 下面将逐步介绍如何保存、编译以及运行这个程序: 打开Notepad,把上面的代码添加进去; 把文件名保存为:MyFirstJavaProgram.java; 打开cmd命令窗口,进入目标文件所在的位置,假设是C: 在命令行窗口键入 javac MyFirstJavaProgram.java 按下enter键编译

3、代码。如果代码没有错误,cmd命令提示符会进入下一行。(假设环境变量都设置好了)。 再键入java MyFirstJavaProgram 按下Enter键就可以运行程序了你将会在窗口看到 Hello WorldC : javac MyFirstJavaProgram.javaC : java MyFirstJavaProgram Hello World基本语法编写Java程序时,应注意以下几点: 大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的。 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如MyFir

4、stJavaClass 。 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。 源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记Java是大小写敏感的),文件名的后缀为.java。(如果文件名和类名不相同则会导致编译错误)。 主方法入口:所有的Java 程序由public static void main(String args)方法开始执行。Java标识符Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。关于Java标识符,有以下几点需要注意: 所有的标识符都应该以字母(A-Z或者a-z)

5、,美元符($)、或者下划线(_)开始 首字符之后可以是任何字符的组合 关键字不能用作标识符 标识符是大小写敏感的 合法标识符举例:age、$salary、_value、_1_value 非法标识符举例:123abc、-salaryJava修饰符像其他语言一样,Java可以使用修饰符来修饰类中方法和属性。主要有两类修饰符: 可访问修饰符 : default, public , protected, private 不可访问修饰符 : final, abstract, strictfp在后面的章节中我们会深入讨论Java修饰符。Java变量Java中主要有如下几种类型的变量 局部变量 类变量(静态

6、变量) 成员变量(非静态变量)Java数组数组是储存在堆上的对象,可以保存多个同类型变量。在后面的章节中,我们将会学到如何声明、构造以及初始化一个数组。Java枚举Java 5.0引入了枚举,枚举限制变量只能是预先设定好的值。使用枚举可以减少代码中的bug。例如,我们为果汁店设计一个程序,它将限制果汁为小杯、中杯、大杯。这就意味着它不允许顾客点除了这三种尺寸外的果汁。实例class FreshJuice enum FreshJuiceSize SMALL, MEDUIM, LARGE FreshJuiceSize size;public class FreshJuiceTest public

7、static void main(String args) FreshJuice juice = new FreshJuice(); juice.size = FreshJuice. FreshJuiceSize.MEDUIM ; 注意:枚举可以单独声明或者声明在类里面。方法、变量、构造函数也可以在枚举中定义。Java关键字下面列出了Java保留字。这些保留字不能用于常量、变量、和任何标识符的名称。关键字描述abstract抽象方法,抽象类的修饰符assert断言条件是否满足boolean布尔数据类型break跳出循环或者label代码段byte8-bit 有符号数据类型caseswitch语

8、句的一个条件catch和try搭配扑捉异常信息char16-bit Unicode字符数据类型class定义类const未使用continue不执行循环体剩余部分defaultswitch语句中的默认分支do循环语句,循环体至少会执行一次double64-bit双精度浮点数elseif条件不成立时执行的分支enum枚举类型extends表示一个类是另一个类的子类final表示一个值在初始化之后就不能再改变了表示方法不能被重写,或者一个类不能有子类finally为了完成执行的代码而设计的,主要是为了程序的健壮性和完整性,无论有没有异常发生都执行代码。float32-bit单精度浮点数forfor

9、循环语句goto未使用if条件语句implements表示一个类实现了接口import导入类instanceof测试一个对象是否是某个类的实例int32位整型数interface接口,一种抽象的类型,仅有方法和常量的定义long64位整型数native表示方法用非java代码实现new分配新的类实例package一系列相关类组成一个包private表示私有字段,或者方法等,只能从类内部访问protected表示字段只能通过类或者其子类访问子类或者在同一个包内的其他类public表示共有属性或者方法return方法返回值short16位数字static表示在类级别定义,所有实例共享的strict

10、fp浮点数比较使用严格的规则super表示基类switch选择语句synchronized表示同一时间只能由一个线程访问的代码块this表示调用当前实例或者调用另一个构造函数throw抛出异常throws定义方法可能抛出的异常transient修饰不要序列化的字段try表示代码块要做异常处理或者和finally配合表示是否抛出异常都执行finally中的代码void标记方法不返回任何值volatile标记字段可能会被多个线程同时访问,而不做同步whilewhile循环Java注释类似于C/C+,Java也支持单行以及多行注释。注释中的字符将被Java编译器忽略。public class MyF

11、irstJavaProgram /* 这是第一个Java程序 *它将打印Hello World * 这是一个多行注释的示例 */ public static void main(String args) / 这是单行注释的示例 /* 这个也是单行注释的示例 */ System.out.println(Hello World); Java 空行空白行,或者有注释的的行,Java编译器都会忽略掉。继承在Java中,一个类可以由其他类派生。如果你要创建一个类,而且已经存在一个类具有你所需要的属性或方法,那么你可以将新创建的类继承该类。利用继承的方法,可以重用已存在类的方法和属性,而不用重写这些代码。

12、被继承的类称为超类(super class),派生类称为子类(subclass)。接口在Java中,接口可理解为对象间相互通信的协议。接口在继承中扮演着很重要的角色。接口只定义派生要用到的方法,但是方法的具体实现完全取决于派生类。下一节介绍Java编程中的类和对象。之后你将会对Java中的类和对象有更清楚的认识。Java 对象和类Java作为一种面向对象语言。支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 消息解析本节我们重点研究对象和类的概念。 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 类:类是

13、一个模板,它描述一类对象的行为和状态。Java中的对象现在让我们深入了解什么是对象。看看周围真实的世界,会发现身边有很多对象,车,狗,人等等。所有这些对象都有自己的状态和行为。拿一条狗来举例,它的状态有:名字、品种、颜色,行为有:叫、摇尾巴和跑。对比现实对象和软件对象,它们之间十分相似。软件对象也有状态和行为。软件对象的状态就是属性,行为通过方法体现。在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。Java中的类类可以看成是创建Java对象的模板。通过下面一个简单的类来理解下Java中类的定义:public class Dog String breed; int a

14、ge; String color; void barking() void hungry() void sleeping() 一个类可以包含以下类型变量: 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。 类变量:类变量也声明在类中,方法体之外,但必须声明为static类型。一个类可以拥有多个方法,在上面的例子中:barking()、hungry()和sleeping()都是Dog类

15、的方法。构造方法每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。下面是一个构造方法示例:public class Puppy public Puppy() public Puppy(String name) / 这个构造器仅有一个参数:name 创建对象对象是根据类创建的。在Java中,使用关键字new来创建一个新的对象。创建对象需要以下三步: 声明:声明一个对象,包括对象名称和对象类型。 实例化:使用关键字new来创建一个对象。 初始化:使用n

16、ew创建对象时,会调用构造方法初始化对象。下面是一个创建对象的例子:public class Puppy public Puppy(String name) /这个构造器仅有一个参数:name System.out.println(Passed Name is : + name ); public static void main(String args) / 下面的语句将创建一个Puppy对象 Puppy myPuppy = new Puppy( tommy ); 编译并运行上面的程序,会打印出下面的结果:Passed Name is :tommy访问实例变量和方法通过已创建的对象来访问成员

17、变量和成员方法,如下所示:/* 实例化对象 */ObjectReference = new Constructor();/* 访问其中的变量 */ObjectReference.variableName;/* 访问类中的方法 */ObjectReference.MethodName();实例下面的例子展示如何访问实例变量和调用成员方法:public class Puppy int puppyAge; public Puppy(String name) / 这个构造器仅有一个参数:name System.out.println(Passed Name is : + name ); public

18、void setAge( int age ) puppyAge = age; public int getAge( ) System.out.println(Puppys age is : + puppyAge ); return puppyAge; public static void main(String args) /* 创建对象 */ Puppy myPuppy = new Puppy( tommy ); /* 通过方法来设定age */ myPuppy.setAge( 2 ); /* 调用另一个方法获取age */ myPuppy.getAge( ); /*你也可以像下面这样访问成

19、员变量 */ System.out.println(Variable Value : + myPuppy.puppyAge ); 编译并运行上面的程序,产生如下结果:Passed Name is :tommyPuppys age is :2Variable Value :2源文件声明规则在本节的最后部分,我们将学习源文件的声明规则。当在一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意这些规则。 一个源文件中只能有一个public类 一个源文件可以有多个非public类 源文件的名称应该和public类的类名保持一致。例如:源文件中public类的类名是Empl

20、oyee,那么源文件应该命名为Employee.java。 如果一个类定义在某个包中,那么package语句应该在源文件的首行。 如果源文件包含import语句,那么应该放在package语句和类定义之间。如果没有package语句,那么import语句应该在源文件中最前面。 import语句和package语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明。类有若干种访问级别,并且类也分不同的类型:抽象类和final类等。这些将在访问控制章节介绍。除了上面提到的几种类型,Java还有一些特殊的类,如:内部类、匿名类。Java包包主要用来对类和接口进行分类。当开发Ja

21、va程序时,可能编写成百上千的类,因此很有必要对类和接口进行分类。Import语句在Java中,如果给出一个完整的限定名,包括包名、类名,那么Java编译器就可以很容易地定位到源代码或者类。Import语句就是用来提供一个合理的路径,使得编译器可以找到某个类。例如,下面的命令行将会命令编译器载入java_installation/java/io路径下的所有类import java.io.*;一个简单的例子在该例子中,我们创建两个类:Employee和EmployeeTest。首先打开文本编辑器,把下面的代码粘贴进去。注意将文件保存为Employee.java。Employee类有四个成员变量:

22、name、age、designation和salary。该类显式声明了一个构造方法,该方法只有一个参数。import java.io.*;public class Employee String name; int age; String designation; double salary; / Employee 类的构造器 public Employee(String name) this.name = name; / 设置age的值 public void empAge(int empAge) age = empAge; /* 设置designation的值*/ public void

23、empDesignation(String empDesig) designation = empDesig; /* 设置salary的值*/ public void empSalary(double empSalary) salary = empSalary; /* 打印信息 */ public void printEmployee() System.out.println(Name:+ name ); System.out.println(Age: + age ); System.out.println(Designation: + designation ); System.out.pr

24、intln(Salary: + salary); 程序都是从main方法开始执行。为了能运行这个程序,必须包含main方法并且创建一个实例对象。下面给出EmployeeTest类,该类实例化2个Employee类的实例,并调用方法设置变量的值。将下面的代码保存在EmployeeTest.java文件中。import java.io.*;public class EmployeeTest public static void main(String args) /* 使用构造器创建两个对象 */ Employee empOne = new Employee(James Smith); Emplo

25、yee empTwo = new Employee(Mary Anne); / 调用这两个对象的成员方法 empOne.empAge(26); empOne.empDesignation(Senior Software Engineer); empOne.empSalary(1000); empOne.printEmployee(); empTwo.empAge(21); empTwo.empDesignation(Software Engineer); empTwo.empSalary(500); empTwo.printEmployee(); 编译这两个文件并且运行EmployeeTest

26、类,可以看到如下结果:C : javac Employee.javaC : vi EmployeeTest.javaC : javac EmployeeTest.javaC : java EmployeeTestName:James SmithAge:26Designation:Senior Software EngineerSalary:1000.0Name:Mary AnneAge:21Designation:Software EngineerSalary:500.0Java 基本数据类型变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。内存管理系统根据变量的类型

27、为变量分配存储空间,分配的空间只能用来储存该类型数据。因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符。Java的两大数据类型: 内置数据类型 引用数据类型内置数据类型Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。byte: byte数据类型是8位、有符号的,以二进制补码表示的整数; 最小值是-128(-27); 最大值是127(27-1); 默认值是0; byte类型用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int类型的四分之一; 例子:byte a = 100,byte b = -50。sho

28、rt: short数据类型是16位、有符号的以二进制补码表示的整数 最小值是-32768(-215); 最大值是32767(215 - 1); Short数据类型也可以像byte那样节省空间。一个short变量是int型变量所占空间的二分之一; 默认值是0; 例子:short s = 1000,short r = -20000。int: int数据类型是32位、有符号的以二进制补码表示的整数; 最小值是-2,147,483,648(-231); 最大值是2,147,485,647(231 - 1); 一般地整型变量默认为int类型; 默认值是0; 例子:int a = 100000, int

29、b = -200000。long: long数据类型是64位、有符号的以二进制补码表示的整数; 最小值是-9,223,372,036,854,775,808(-263); 最大值是9,223,372,036,854,775,807(263 -1); 这种类型主要使用在需要比较大整数的系统上; 默认值是0L; 例子: long a = 100000L,int b = -200000L。float: float数据类型是单精度、32位、符合IEEE 754标准的浮点数; float在储存大型浮点数组的时候可节省内存空间; 默认值是0.0f; 浮点数不能用来表示精确的值,如货币; 例子:float

30、f1 = 234.5f。double: double数据类型是双精度、64位、符合IEEE 754标准的浮点数; 浮点数的默认类型为double类型; double类型同样不能表示精确的值,如货币; 默认值是0.0f; 例子:double d1 = 123.4。boolean: boolean数据类型表示一位的信息; 只有两个取值:true和false; 这种类型只作为一种标志来记录true/false情况; 默认值是false; 例子:boolean one = true。char: char类型是一个单一的16位Unicode字符; 最小值是u0000(即为0); 最大值是uffff(即为

31、65,535); char数据类型可以储存任何字符; 例子:char letter = A。实例对于数值类型的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已经以常量的形式定义在对应的包装类中了。请看下面的例子:public class PrimitiveTypeTest public static void main(String args) / byte System.out.println(基本类型:byte 二进制位数: + Byte.SIZE); System.out.println(包装类:java.lang.Byte); System.out.println(最小值:By

32、te.MIN_VALUE= + Byte.MIN_VALUE); System.out.println(最大值:Byte.MAX_VALUE= + Byte.MAX_VALUE); System.out.println(); / short System.out.println(基本类型:short 二进制位数: + Short.SIZE); System.out.println(包装类:java.lang.Short); System.out.println(最小值:Short.MIN_VALUE= + Short.MIN_VALUE); System.out.println(最大值:Sho

33、rt.MAX_VALUE= + Short.MAX_VALUE); System.out.println(); / int System.out.println(基本类型:int 二进制位数: + Integer.SIZE); System.out.println(包装类:java.lang.Integer); System.out.println(最小值:Integer.MIN_VALUE= + Integer.MIN_VALUE); System.out.println(最大值:Integer.MAX_VALUE= + Integer.MAX_VALUE); System.out.prin

34、tln(); / long System.out.println(基本类型:long 二进制位数: + Long.SIZE); System.out.println(包装类:java.lang.Long); System.out.println(最小值:Long.MIN_VALUE= + Long.MIN_VALUE); System.out.println(最大值:Long.MAX_VALUE= + Long.MAX_VALUE); System.out.println(); / float System.out.println(基本类型:float 二进制位数: + Float.SIZE)

35、; System.out.println(包装类:java.lang.Float); System.out.println(最小值:Float.MIN_VALUE= + Float.MIN_VALUE); System.out.println(最大值:Float.MAX_VALUE= + Float.MAX_VALUE); System.out.println(); / double System.out.println(基本类型:double 二进制位数: + Double.SIZE); System.out.println(包装类:java.lang.Double); System.out

36、.println(最小值:Double.MIN_VALUE= + Double.MIN_VALUE); System.out.println(最大值:Double.MAX_VALUE= + Double.MAX_VALUE); System.out.println(); / char System.out.println(基本类型:char 二进制位数: + Character.SIZE); System.out.println(包装类:java.lang.Character); / 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台 System.out.print

37、ln(最小值:Character.MIN_VALUE= + (int) Character.MIN_VALUE); / 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台 System.out.println(最大值:Character.MAX_VALUE= + (int) Character.MAX_VALUE); 编译以上代码输出结果如下所示:基本类型:byte 二进制位数:8包装类:java.lang.Byte最小值:Byte.MIN_VALUE=-128最大值:Byte.MAX_VALUE=127基本类型:short 二进制位数:16包装类:java.lang

38、.Short最小值:Short.MIN_VALUE=-32768最大值:Short.MAX_VALUE=32767基本类型:int 二进制位数:32包装类:java.lang.Integer最小值:Integer.MIN_VALUE=-2147483648最大值:Integer.MAX_VALUE=2147483647基本类型:long 二进制位数:64包装类:java.lang.Long最小值:Long.MIN_VALUE=-9223372036854775808最大值:Long.MAX_VALUE=9223372036854775807基本类型:float 二进制位数:32包装类:java

39、.lang.Float最小值:Float.MIN_VALUE=1.4E-45最大值:Float.MAX_VALUE=3.4028235E38基本类型:double 二进制位数:64包装类:java.lang.Double最小值:Double.MIN_VALUE=4.9E-324最大值:Double.MAX_VALUE=1.7976931348623157E308基本类型:char 二进制位数:16包装类:java.lang.Character最小值:Character.MIN_VALUE=0最大值:Character.MAX_VALUE=65535Float和Double的最小值和最大值都是以

40、科学记数法的形式输出的,结尾的E+数字表示E之前的数字要乘以10的多少倍。比如3.14E3就是3.141000=3140,3.14E-3就是3.14/1000=0.00314。实际上,JAVA中还存在另外一种基本类型void,它也有对应的包装类 java.lang.Void,不过我们无法直接对它们进行操作。引用类型 引用类型变量由类的构造函数创建,可以使用它们访问所引用的对象。这些变量在声明时被指定为一个特定的类型,比如Employee、Pubby等。变量一旦声明后,类型就不能被改变了。 对象、数组都是引用数据类型。 所有引用类型的默认值都是null。 一个引用变量可以用来引用与任何与之兼容的

41、类型。 例子:Animal animal = new Animal(“giraffe”)。Java常量常量就是一个固定值。它们不需要计算,直接代表相应的值。常量指不能改变的量。 在Java中用final标志,声明方式和变量类似:final double PI = 3.1415927;虽然常量名也可以用小写,但为了便于识别,通常使用大写字母表示常量。字面量可以赋给任何内置类型的变量。例如:byte a = 68;char a = Abyte、int、long、和short都可以用十进制、16进制以及8进制的方式来表示。当使用常量的时候,前缀o表明是8进制,而前缀0x代表16进制。例如:int decimal = 100;int octal = 0144;int hexa = 0x64;和其他语言一样,Java的字符串常量也是包含在两个引号之间的字符序列。下面是字符串型字面量的例子:Hello WorldtwonlinesThis is in quotes字符串常量和字符常量都可以包含任何Unicode字符。例如:char a = u0001;String a = u0001;Java语言支持一些特殊的转义字符序列。符号字符含义n换行 (0x0a)r回车 (0x0d)f换页符(0x0c)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 单元课程

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com