JAVA语言基础教程
更新时间:2023-05-22 06:40:01 阅读量: 实用文档 文档下载
java语言基础教程
JAVA教程 第一讲 Java语言概述(4)
1.2.5 java平台-不断扩展的计算平台
java不仅是编程语言,还是一个开发平台,java技术给程序员提供了许多工具:编译器、解释器、文档生成器和文件打包工具等等。同时java还是一个程序发布平台,有两种主要的"发布环境",首先java运行时环境(java runtime environment,简称JRE)包含了完整的类文件包,其次许多主要的浏览器都提供了java解释器和运行时环境。目前Sun公司把java平台划分成J2EE、J2SE、J2ME三个平台,针对不同的市场目标和设备进行定位。J2EE是Java2 Enterprise Edition,主要目的是为企业计算提供一个应用服务器的运行和开发平台。J2EE本身是一个开放的标准,任何软件厂商都可以推出自己的符合J2EE标准的产品,使用户可以有多种选择。IBM、Oracle、BEA、HP等29家已经推出了自己的产品,其中尤以BEA公司的weglogic产品和IBM公司的websphare最为著名。J2EE将逐步发展成为可以与微软的.NET战略相对抗的网络计算平台。J2SE是Java2 Standard Edition,主要目的是为台式机和工作站提供一个开发和运行的平台。我们在学习java的过程中,主要是采用J2SE来进行开发。J2ME是Java2 Micro Edition,主要是面向消费电子产品,为消费电子产品提供一个java的运行平台,使得java程序能够在手机、机顶盒、PDA等产品上运行。上述三个java平台的关系
1.3 一切都是对象
1.3.1面向过程
面向对象的第一个原则是把数据和对该数据的操作都封装在一个类中,在程序设计时要考虑多个对象及其相互间的关系。有些功能并不一定由一个程序段完全实现,可以让其它对象来实现,在本例中就由类Max完成求最大值的功能。而面向对象的另外一个好处是实现代码的重复使用,例如其它的程序中如果需要求最大值的功能,只需要通过类Max的对象就可以达到目的。但是如果象面向过程的代码段那样把求最大值的算法都实现在该代码段
java语言基础教程
中,则无法复用
早期的编程语言如FORTRAN、C基本上都是面向过程的语言,其编程的主要思路专注于算法的实现。例如下面是一个面向过程的求正整数最大值的程序:
int maxSoFar=0,price=1; //最大值maxSoFar的初始值为0,price是输入的值 while(price>0){ //循环输入price的值
if (price>maxSoFar) //输入的值price大于最大值maxSoFar
maxSoFar=price; //则maxSoFar的值为price的值
String input=JoptionPane.showInputDialog("Enter the next price");
//继续输入price
price=Double.parseDouble(input); //把字符串input转换成整数price
}
System.out.println("The maximum is "+maxSoFar); //打印最大值maxSoFar
}
该程序段主要实现了求最大值的算法,但是,如果考虑用面向对象的编程,可以是另外一种方式:
Max max=new Max( ); //max是类Max的一个对象
while(price>0){
max.updateMax(price); //对象max调用updateMax方法,更新最大值 price=max.getPrice( ); //对象max调用getPrice获得下一个price的值
}
System.out.println("The maximum is "+max.getMax( ));//对象max调用getMax
方法获得最大值,并打印出来
1.3.2 面向对象
纯粹的面向对象程序设计方法是这样的:
1. 所有的东西都是对象。可以将对象想象成为一种新型变量,它保存着数据,而且还可以对自身数据进行操作。例如类Max中保留着数据的最大值,同时还有方法updateMax根据新加入的price值产生最新的最大值,还有getMax方法返回数据的最大值。
2. 程序是一大堆对象的组合。通过消息传递,各对象知道自己应该做些什么。如果需要让对象做些事情,则须向该对象"发送一条消息"。具体来说,可以将消息想象成为一个调用请求,它调用的是从属于目标对象的一个方法。例如上面面向对象的程序段应该是属于某个类的,比如说是属于类Shopping,则Shopping中就包含了类Max的对象max,调用方法updateMax就相当于Shopping对象对max对象发出一条指令"updateMax",要求对象max重新计算最大值。
java语言基础教程
3. 每个对象都有自己的存储空间。可容纳其它对象,或者说通过封装现有的对象,可以产生新型对象。因此,尽管对象的概念非常简单,但是经过封装以后却可以在程序中达到任意高的复杂程度。
4. 每个对象都属于某个类。根据语法,每个对象都是某个"类"的一个"实例"。一个类的最重要的的特征就是"能将什么消息发给它?",也就是类本身有哪些操作。例如max是类Max的实例。
JAVA教程 第一讲 Java语言概述(5)
1.4 构建java程序
1.4.1 第一个java application
java程序分为java application(java 应用程序)和java applet(java小应用程序)两种。下面让我们编写一个java应用程序,它能够利用来自java标准库的System对象的多种方法,打印出与当前运行的系统有关的资料。其中"//"代表一种注释方式,表示从这个符号开始到这行结束的所有内容都是注释。在每个程序文件的开头,如果这个文件的代码中用到了系统所提供的额外的类,就必须放置一个import语句。说它是额外的是指一个特殊的类库"ng"会自动导入到每个java文件
//这是我们的第一个java application,该程序保存在文件Property.java中
import java.util.*; /*下面我们用到了Date和Properties这两个类,是
属于java.util这个包的;*/
/*而System和Runtime这两个类,是属于
ng这个包的。*/
public class Property { //程序员给这个类取名为Property
public static void main(String args[]){ //main是类的主方法
System.out.println(new Date( )); //在命令行下面打印出日期
Properties p=System.getProperties( ); //获得系统的Properties对象p
p.list(System.out); //在命令行下打印出p中的各个系统变量的值
System.out.println("--- Memory Usage:"); /*打印一行字符串---Memory Usage*/ Runtime rt=Runtime.getRuntime( ); //获得系统的Runtime对象rt
System.out.println("Total Memory= "
+ rt.totalMemory( ) //打印总内存大小
+" Free Memory = "
+rt.freeMemory( )); //打印空闲内存大小
java语言基础教程
}
}
在java中,程序都是以类的方式组织的,java源文件都保存在以java为后缀的.java文件当中。每个可运行的程序都是一个类文件,或者称之为字节码文件,保存在.class文件中。而作为一个java application,类中必须包含主方法,程序的执行是从main方法开始的,方法头的格式是确定不变的:
public static void main(String args[])
其中关键字public意味着方法可以由外部世界调用。main方法的参数是一个字符串数组args,虽然在本程序中没有用到,但是必须列出来。
程序的第一行非常有意思:
System.out.println(new Date());
打印语句的参数是一个日期对象Date,而创建Date对象的目的就是把它的值发给println()语句。一旦这个语句执行完毕,Date对象就没用了,而后"无用内存回收器"会将其收回。
第二行中调用了System.getProperties( )。从帮助文档中可知,getProperties( )是System类的一个静态方法(static 方法),由于它是"静态"的,所以不必创建任何对象就可以调用该方法。在第三行,Properties对象有一个名为list( )的方法,它将自己的全部内容都发给一个PrintStream对象,该对象就是list()方法的参数。
第四行和第六行是典型的打印语句,其中第六行通过运算符"+"的重载来连接多个字符串对象,在java中只有当"+"运算符作用于字符串时在能够进行重载。但是让我们仔细观察下述语句:
System.out.println("Total Memory= "
+ rt.totalMemory( ) //打印总内存大小
+" Free Memory = "
+rt.freeMemory( )); //打印空闲内存大小
其中,totalMemory( )和freeMemory( )返回的是数值,并非String对象。如果将一个字符串与一个数值相加,结果会如何?在这种情况下,编译器会自动调用一个toString()方法,将该数值(int型或者float型)转换成字符串。经过这样处理以后,就可以用"+"进行字符串连接了。
main()的第五行通过调用Runtime的getRuntime()方法创建了一个Runtime对象,该对象中包含了内存等信息。
java语言基础教程
1.4.2 java程序的编辑
java程序的编辑可以使用任何一种文本编辑器,例如UltraEdit、Notepad、Wordpad甚至word,然后只要把编辑好的文件存成.java文件。当然也可以用一些集成开发环境,例如Borland公司的JBuilder,IBM公司的Visualage for Java,此外还有cafe、kawa等其它集成开发环境。下面两幅图分别是用UltraEdit和JBuilder编辑Property.java文件的情况
Sun公司为全世界的java程序员提供了一个免费的java程序开发包(Java Develop Kit,简称JDK),其中包括了java编译器命令"javac",以及java执行命令"java",还有帮助文档生成器命令"javadoc"等等。所有这些命令都可以在命令行下运行,例如我们要编译上述java文件Property.java,如果是在windows中进行开发,就可以在"命令提示符"下进行编译,在命令行中敲入"javac Property.java".
JAVA教程 第一讲 Java语言概述(6)
时间 : 2010-06-07 作者:许斌 编辑:Mr.阿布 点击: 236 [ 评论 ] -
-
1.4.4 java application的执行
当编译结束以后,在java源文件中的每一个类都会生成相应的 .class 文件,例如上图中就会生成一个Property.class文件,而java程序在执行时调用的是.class 文件。Java application的执行是在命令行下进行的,如果是在windows系统中,就可以"命令提示符"下敲入"java Propery"进行执行,该"java"命令会启动java虚拟机,并读入Property.class文件进行执行。
由于该程序的运行结果直接在命令行下进行输出.
1.4.5 第一个java applet
java程序的另一种形式是java applet,applet没有main()方法,它必须嵌在超文本文件中,在浏览器中进行运行。右面这个程序将在浏览器中显示一行字符串.
java语言基础教程
//这是我们的第一个java applet,该程序保存在文件HelloEducation.java中
import java.awt.Graphics; //在进行显示输出时,需要用到类Graphics的对象;
import java.applet.Applet; //Applet类是所有的java applet的父类;
public class HelloEducation extends Applet {
//程序员给这个类取名为HelloEducation
//所有的applet程序都是Applet类的子类
public String s;
public void init() { //
s=new String("Welcome to Tongfang Education");
//生成一个字符串对象
}
public void paint(Graphics g){
g.drawString(s,25,25);
//在浏览器中坐标为(25,25)的位置显示字符串s }
}
applet程序是从方法init( )开始执行的,在该方法中完成了对字符串s的初始化工作,而显示功能是在方法paint( )中执行的。paint( )方法是类Applet的一个成员方法,其参数是图形对象Graphics g,通过调用对象g的drawString( )方法就可以显示输出。
1.4.6 java applet的执行
java applet程序也是一个类,其编译方式与java application完全一样,HelloEducation.java程序经过编译以后就生成了HelloEducation.class文件。java applet的执行方式与java application完全不同,java applet程序必须嵌入到html文件中才能够执行,因此必须编写相应的html文件。下面为HelloEducaiton.html文件的内容:
<html>
<applet code=HelloEducation.class width=250 height=250>
</applet>
</html>
然后可以通过JDK所提供的命令"appletviewer",在命令行下面执行java applet程序。如果是在windows操作系统中,就可以在"命令提示符"下敲入"appletviewer HelloEducation.html"。
此时系统会弹出另外一个窗口运行该applet程序。
applet还可以采用另外一种方式运行,那就是直接在浏览器中打开HelloEducation.html程序,结果如图1_4_6所示。在主流的浏览器如IE、Netscape中都包含有java虚拟机,负责解释执
java语言基础教程
JAVA教程 第一讲 Java语言概述(7)
1.5 java程序规范
1.5.1 java源程序结构
一个完整的java源程序应该包括下列部分:
package语句; //该部分至多只有一句,必须放在源程序的第一句
import语句; /*该部分可以有若干import语句或者没有,必须放在所有的
类定义之前*/
public classDefinition; //公共类定义部分,至多只有一个公共类的定义
//java语言规定该java源程序的文件名必须与该公共类名完全一致 classDefinition; //类定义部分,可以有0个或者多个类定义
interfaceDefinition; //接口定义部分,可以有0个或者多个接口定义
例如一个java源程序可以是如下结构,该源程序命名为HelloWorldApp.java: package javawork.helloworld; /*把编译生成的所有.class文件放到包
javawork.helloworld中*/
import java.awt.*; //告诉编译器本程序中用到系统的AWT包
import javawork.newcentury; /*告诉编译器本程序中用到用户自定义
的包javawork.newcentury*/
public class HelloWorldApp{......} /*公共类HelloWorldApp的定义,
名字与文件名相同*/
class TheFirstClass{......} //第一个普通类TheFirstClass的定义
class TheSecondClass{......} //第二个普通类TheSecondClass的定义
...... //其它普通类的定义
interface TheFirstInterface{......} /*第一个接口
TheFirstInterface的定义*/
...... //其它接口定义
package语句:由于java编译器为每个类生成一个字节码文件,且文件名与类名相同,因此同名的类有可能发生冲突。为了解决这一问题,java提供包来管理类名空间,包实际提供了一种命名机制和可见性限制机制。而在java的系统类库中,把功能相似的类放到一个包(package)中,例如所有的图形界面的类都放在java.awt这个包中,与网络功能有关的类都放到这个包中。用户自己编写的类(指.class文件)也应该按照功能放在由程序员自己命名的相应的包中,例如上例中的javawork.helloworld就是一个包。包在实际的实现过程中是与文件系统相对应的,例如javawork.helloworld所对应的目录是
java语言基础教程
path\javawork\helloworld,而path是在编译该源程序时指定的。比如在命令行中编译上述HelloWorldApp.java文件时,可以在命令行中敲入"javac -d f:\javaproject HelloWorldApp.java",则编译生成的HelloWorldApp.class文件将放在目录f:\javaproject\javawork\helloworld\目录下面,此时f:\javaprojcet相当于path。但是如果在编译时不指定path,则生成的.class文件将放在编译时命令行所在的当前目录下面。比如在命令行目录f:\javaproject下敲入编译命令"javac HelloWorldApp.java",则生成的HelloWorldApp.class文件将放在目录f:\javaproject下面,此时的package语句相当于没起作用。
但是,如果程序中包含了package语句,则在运行时就必须包含包名。例如,HelloWorldApp.java程序的第一行语句是:package p1.p2;编译的时候在命令行下输入"javac -d path HelloWorldApp.java",则HelloWorldApp.class将放在目录path\p1\p2的下面,这时候运行该程序时有两种方式:
第一种:在命令行下的path目录下输入字符"java p1.p2.HelloWorldApp"。
第二种:在环境变量classpath中加入目录path,则运行时在任何目录下输入"java p1.p2.HelloWorldApp"即可。
import语句:如果在源程序中用到了除ng这个包以外的类,无论是系统的类还是自己定义的包中的类,都必须用import语句标识,以通知编译器在编译时找到相应的类文件。例如上例中的java.awt是系统的包,而javawork.newcentury是用户自定义的包。比如程序中用到了类Button,而Button是属于包java.awt的,在编译时编译器将从目录classpath\java\awt中去寻找类Button,classpath是事先设定的环境变量,比如可以设为:classpath=.;d:\jdk1.3\lib\。 classpath也可以称为类路径,需要提醒大家注意的是,在classpath中往往包含多个路径,用分号隔开。例如classpath=.;d:\jdk1.3\lib\中的第一个分号之前的路径是一个点,表示当前目录,分号后面的路径是d:\jdk1.3\lib\,表示系统的标准类库目录。在编译过程中寻找类时,先从环境变量classpath的第一个目录开始往下找,比如先从当前目录往下找java.awt中的类Button时,编译器找不着,然后从环境变量classpath的第二个目录开始往下找,就是从系统的标准类库目录d:\jdk1.3\lib开始往下找java.awt的Button这个类,最后就找到了。如果要从一个包中引入多个类则在包名后加上".*"表示。
如果程序中用到了用户自己定义的包中的类,假如在上面程序中要用到javawork.newcentury包中的类HelloWorldApp,而包javawork.newcentury所对应的目录是f:\javaproject\javawork\newcentury,classpath仍旧是classpath=.;d:\jdk1.3\lib\,则编译器在编译时将首先从当前目录寻找包javawork.newcentury,结果是没有找到;然后又从环境变量classpath的第二个目录d:\jdk1.3\lib\开始往下找,但是仍然没有找到。原因在于包javawork.newcentury是放在目录f:\javaproject下面。因此,需要重新设定环境变量classpath,设为classpath=.;d:\jdk1.3\lib\;f:\javaproject\ 。所以编译器从f:\javaproject开始找包javawork.newcentury就可以找到。
源文件的命名规则:如果在源程序中包含有公共类的定义,则该源文件名必须与该公共类的名字完全一致,字母的大小写都必须一样。这是java语言的一个严格的规定,如果不遵守,在编译时就会出错。因此,在一个java源程序中至多只能有一个公共类的定义。如果源程序中不包含公共类的定义,则该文件名可以任意取名。如果在一个源程序中有多个类定义,则在编译时将为每个类生成一个.class文件。
java语言基础教程
1.5.2 java编程规范
软件开发是一个集体协作的过程,程序员之间的代码是经常要进行交换阅读的,因此,java源程序有一些约定成俗的命名规定,主要目的是为了提高java程序的可读性。
包名:包名是全小写的名词,中间可以由点分隔开,例如:java.awt.event;
类名:首字母大写,通常由多个单词合成一个类名,要求每个单词的首字母也要大写,例如class HelloWorldApp;
接口名:命名规则与类名相同,例如interface Collection;
方法名:往往由多个单词合成,第一个单词通常为动词,首字母小写,中间的每个单词的首字母都要大写,例如:balanceAccount, isButtonPressed;
变量名:全小写,一般为名词,例如:length;
常量名:基本数据类型的常量名为全大写,如果是由多个单词构成,可以用下划线隔开,例如:int YEAR, int WEEK_OF_MONTH;如果是对象类型的常量,则是大小写混合,由大写字母把单词隔开。
JAVA教程 第一讲 Java语言概述(8)
1.5.3 java帮助文档
java中所有类库的介绍都保存在java帮助文档中,程序员在编程过程中,必须查阅该帮助文档,了解系统提供的类的功能、成员方法、成员变量等等信息以后,才能够更好的编程。同时,java开发工具包(JDK)提供了
"java"、"javac"、"javadoc"、
"appletviewer"等命令,在java帮助文档中也对此进行了详细的介绍。java帮助文档是以HTML文件的形式组织,通常是安装在JDK目录下的docs子目录中的index.html文件,所以用浏览器就可以进行查阅。例如JDK是安装在D:\jdk1.3目录下面,则用浏览器打开D:\jdk1.3\docs\index.html文件,就可以看到图1_5_1所示的帮助文档。
java语言基础教程
如果希望查阅JDK的命令,则可以选择"Tool Documentation"。
此时浏览器就会把java、javac、javadoc、appletviewer等命令列出来。
但是大多时时候,我们需要查阅的是类库的文档,因此需要在"D:\jdk1.3\docs\index.html"文件中选择"Java 2 Platform API Specification",如图1_5_4中红字所示。
然后就进入了详细的类库介绍,如图1_5_5所示。
1.5.4 java注释
单行注释:从"//"开始到本行结束的内容都是注释,例如:
//这是一行单行注释
//则是另一行单行注释
多行注释:在"/*"和"*/"之间的所有内容都是注释,例如:
/*这是一段注释分布在多行之中*/
文档注释:在注释方面java提供一种C/C++所不具有的文档注释方式。其核心思想是当程序员编完程序以后,可以通过JDK提供的javadoc命令,生成所编程序的API文档,而该文档中的内容主要就是从文档注释中提取的。该API文档以HTML文件的形式出现,与java帮助文档的风格与形式完全一致。凡是在"/**"和"*/"之间的内容都是文档注释。例如下面的DocTest.java文件:
/** 这是一个文档注释的例子,主要介绍下面这个类 */
public class DocTest{
/** 变量注释,下面这个变量主要是充当整数计数 */
public int i;
/** 方法注释,下面这个方法的主要功能是计数 */
public void count( ) {}
}
通过在命令行下面运行"javadoc -d . DocTest.java",就生成了介绍类DocTest的index.html文件,用浏览器浏览结果,注意到DocTest.java文件中的文档注释的内容都出现在该index.html文件中。
JAVA教程 第一讲 Java语言概述(9)
-
-
java语言基础教程
1.6 建立java开发环境
1.6.1 安装Java Develop Kit(JDK)
Sun公司为所有的java程序员提供了一套免费的java开发和运行环境,取名为Java2 SDK,可以从上进行下载,也可以从同方教育网站上下载。但是最新的消息和版本必须从Sun的网站上才能够得到。安装的时候可以选择安装到任意的硬盘驱动器上,例如安装到D:\jdk1.3目录下。通常在JDK目录下有bin、demo、lib、jre等子目录,其中bin目录保存了javac、java、appletviewer等命令文件,demo目录保存了许多java的例子,lib目录保存了java的类库文件,jre保存的是java的运行时环境。
1.6.2 安装java帮助文档
由于JDK的安装程序中并不包含帮助文档,因此也必须从Sun的网站上下载进行安装。通常安装在JDK所在目录的docs子目录下面。用浏览器打开docs子目录下的index.html文件就可以阅读所有的帮助文档。
1.6.3 配置类路径
在安装完JDK之后,必须配置类路径classpath和环境变量path,JDK才能够正常运行。如果是在windows98中运行,则在
C:\autoexec.bat文件的末尾添加下列语句:
classpath= .;d:\jdk1.3\lib;
path=%path%;d:\jdk1.3\bin;
如果是在windows2000中,则需要用右键单击桌面上"我的电脑",选择"属性",则弹出一个名为"系统特性"的窗口,选择"高级",然后选择"环境变量",在"环境变量"窗口中编辑classpath和path。
java语言基础教程
【本讲小结】
java语言的产生起源于Sun Microsystems公司为消费电子产品上应用程序的开发寻找一门编程语言的过程中,而随着互联网时代的到来,原有的Oak软件就顺理成章的改造成java语言推向了市场,其跨平台、面相对象、安全等特点使其得到广泛的应用。通过在不同的软硬件上实现的java虚拟机,java的字节码文件就可以跨平台的进行运行,无用内存自动回
java语言基础教程
收器也给程序员带来了极大的方便。java程序以两种方式进行运行,一种是通过java虚拟机进行直接运行的java application,另一种是通过浏览器进行运行的java applet,但是无论是何种方式,java都是一门纯粹的面向对象的编程语言。面向对象编程的思路认为程序都是对象的组合,因此要克服面向过程编程的思路,直接按照对象和类的思想去组织程序,面向对象所具有的封装性、继承性、多态性等特点使其具有强大的生命力。Sun公司为全世界java开发人员提供了一套免费的软件开发包Java2 SDK,也称为JDK,它不仅是java的开发平台,还是java的运行平台。java源程序存放在.java文件中,可以通过任意一个文本编辑器编辑产生,源程序经过"javac"命令编译过后,就生成了相应的.class文件,而用"java"命令就可以运行.class文件。作为面向对象编程人员来说,大体可以分为两种:类创建者和应用程序员,应用程序员是类的使用者。所以对程序的可读性和API帮助文档就有要求,java语言本身有一套约定成俗的编程规范,同时程序员首先要学会阅读系统API帮助文档,还要学会生成自己编写的程序的API帮助文档。
JAVA教程 第二讲 Java语言基础知识(1) -
2.1简单数据类型
2.1.1 标识符和保留字
1.标识符
程序员对程序中的各个元素加以命名时使用的命名记号称为标识符(identifier)。Java语言中,标识符是以字母,下划线(_),美元符($)开始的一个字符序列,后面可以跟字母,下划线,美元符,数字。例如,identifier,userName,User_Name,_sys_val, $change为合法的标识符,而2mail room#,class 为非法的标识符。
2.保留字
具有专门的意义和用途,不能当作一般的标识符使用,这些标识符称为保留字(reserved word),也称为关键字,下面列出了java语言中的所有保留字:
bstract,break,byte,boolean,catch,case,class,char,continue,default,double,do,else,extends,false,final,float,for,finally,if,import,implements,int,interface,instanceof,long,length,native,new,null,package,private,protected,public,return,switch,synchronized,short,static,super,try,true,this,throw,throws,threadsafe,transient,void,while 。
java语言基础教程
java语言中的保留字均用小写字母表示。
2.1.2 数据类型概
1. java中的数据类型划分
java语言的数据类型有简单类型和复合类型:
简单数据类型包括:
整数类型(Integer):byte, short, int, long
浮点类型(Floating):float,double
字符类型(Textual):char
布尔类型(Logical):boolean
复合数据类型包括:
class
interface
数组
2.常量和变量
常量:用保留字final来实现
final typeSpecifier varName=value[,varName[=value]…];
如:final int NUM=100;
变量:是java 程序中的基本存储单元,它的定义包括变量名、变量类型和作用域几个部分。其定义格式如下:
typeSpecifier varName[=value[,varName[=value]…];
如:int count; char c='a';
变量的作用域指明可访问该变量的一段代码,声明一个变量的同时也就指明了变量的作用域。按作用域来分,变量可以有下面几种:局部变量、类变量、方法参数和例外处理参数。在一个确定的域中,变量名应该是唯一的。局部变量在方法或方法的一个块代码中声明,它的作用域为它所在的代码块(整个方法或方法中的某块代码)。类变量在类中声明,而不是在类的某个方法中声明,它的作用域是整个类。方法参数传递给方法,它的作用域就是这个方法。例外处理参数传递给例外处理代码,它的作用域就是例外处理部分。
java语言基础教程
JAVA教程 第二讲 Java语言基础知识(2)
2.1.3 简单数据类型
1.布尔类型--boolean
布尔型数据只有两个值true和false,且它们不对应于任何整数值。布尔型变量的定义如:
boolean b=true;
2.字符类型--char
字符常量:
字符常量是用单引号括起来的一个字符,如'a','A';
字符型变量:
类型为char,它在机器中占16位,其范围为0~65535。字符型变量的定义如: char c='a'; /*指定变量c为char型,且赋初值为'a'*/
3.整型数据
整型常量:
◇ 十进制整数
如123,-456,0
◇ 八进制整数
以0开头,如0123表示十进制数83,-011表示十进制数-9。 ◇ 十六进制整数
以0x或0X开头,如0x123表示十进制数291,-0X12表示十进制数-18。
整型变量:
数据类型 所占位数 数的范围
byte 8 -27~27-1
bhort 16 -215~215-1
int 32 -231~231-1
long 64 -263~263-1
4.浮点型(实型)数据
java语言基础教程
实型常量:
◇ 十进制数形式
由数字和小数点组成,且必须有小数点,如0.123, 1.23, 123.0
◇ 科学计数法形式
如:123e3或123E3,其中e或E之前必须有数字,且e或E后面的指数必须为整数。
◇ float型的值,必须在数字后加f或F,如1.23f。
实型变量:
数据类型 所占位数 数的范围
float 32 3.4e-038 ~3.4e+038
double 64 1.7e-038 ~1.7e+038
5.简单数据类型的例子:
【例2.1】
public class Assign {
public static void main (String args [ ] ) {
int x , y ; //定义x,y两个整型变量
float z = 1.234f ; //指定变量z为float型,且赋初值为1.234
double w = 1.234 ; //指定变量w为double型,且赋初值为1.234
boolean flag = true ; //指定变量flag为boolean型,且赋初值为true
char c ; //定义字符型变量c
String str ; //定义字符串变量str
String str1 = " Hi " ; //指定变量str1为String型,且赋初值为Hi
c = ' A ' ; //给字符型变量c赋值'A'
str = " bye " ; //给字符串变量str赋值"bye"
x = 12 ; //给整型变量x赋值为12
y = 300; //给整型变量y赋值为300
}
}
2.1.4 简单数据类型中各类型数据间的优先关系和相互转换
1.不同类型数据间的优先关系如下:
java语言基础教程
低------------------------------------------->高
byte,short,char-> int -> long -> float -> double
2.自动类型转换规则
整型,实型,字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算,转换从低级到高级;
操作数1类型 操作数2类型 转换后的类型
byte、short、char int int
byte、short、char、int long long
byte、short、char、int、long float float
byte、short、char、int、long、float double double
3.强制类型转换
高级数据要转换成低级数据,需用到强制类型转换,如:
int i;
byte b=(byte)i; /*把int型变量i强制转换为byte型*/
JAVA教程 第二讲 Java语言基础知识(3) 时间 : 2010-06-07 作者:许斌 编辑:Mr.阿布 点击: 245 [ 评论 ] -
-
2.2 运算符和表达式
2.2.1 运算符
对各种类型的数据进行加工的过程成为运算,表示各种不同运算的符号称为运算符,参与运算的数据称为操作数,按操作数的数目来分,可有:
◇ 一元运算符:++,--,+,-
◇ 二元运算符:+,-,>
◇ 三元运算符:?:
基本的运算符按功能划分,有下面几类:
java语言基础教程
1 算术运算符: +,―,*,/,%,++,――。
例如:
3+2;
a-b;
i++;
--i;
2 关系运算符: >,<,>=,<=,==,!=。
例如:
count>3;
I==0;
n!=-1;
3 布尔逻辑运算符: !,&&,|| 。
例如:
flag=true;
!(flag);
flag&&false;
4 位运算符: >>,<<,>>>,&,|,^,~。
例如:
a=10011101; b=00111001;则有如下结果:
a<<3 =11101000;
a>>3 =11110011 a>>>3=00010011;
a&b=00011001; a|b=10111101;
~a=01100010; a^b=10100100;
5 赋值运算符 =,及其扩展赋值运算符如+=,―=,*=,/=等。
例如:
i=3;
i+=3; //等效于i=i+3;
6 条件运算符 ? :
例如:result=(sum= =0 ? 1 : num/sum);
7 其它:
包括分量运算符· ,下标运算符 [],实例运算符instanceof,内存分配运算符new,强制类型转换运算符 (类型),方法调用运算符 () 等。例如:
System.out.println("hello world");
int array1[]=new int[4];
java语言基础教程
2.2.2 表达式
表达式是由操作数和运算符按一定的语法形式组成的符号序列。一个常量或一个变量名字是最简单的表达式,其值即该常量或变量的值;表达式的值还可以用作其他运算的操作数,形成更复杂的表达式。
1.表达式的类型
表达式的类型由运算以及参与运算的操作数的类型决定,可以是简单类型,也可以是复合类型:
布尔型表达式: x&&y||z;
整型表达式: num1+num2;
2.运算符的优先次序
表达式的运算按照运算符的优先顺序从高到低进行,同级运算符从左到右进行:
优先次序 运算符
1 . [] ()
2 ++ -- ! ~ instanceof
3 new (type)
4 * / %
5 + -
6 >> >>> <<
7 > < >= <=
8 = = !=
9 &
10 ^
11 |
12 &&
13 ||
14 ?:
15 = += -= *= /= %= ^=
16 &= |= <<= >>= >>>=
例如,下述条件语句分四步完成:
Result=sum==0?1:num/sum;
第1步:result=sum==0?1:(num/sum)
第2步:result=(sum==0)?1:(num/sum)
java语言基础教程
第3步:result=((sum==0)?1:(num/sum))
第4步:result=
JAVA教程 第二讲 Java语言基础知识(4)
2.3控制语句
Java程序通过控制语句来执行程序流,完成一定的任务。程序流是由若干个语句组成的,语句可以是单一的一条语句,如c=a+b,也可以是用大括号{}括起来的一个复合语句。Java中的控制语句有以下几类:
◇ 分支语句:if-else, switch
◇ 循环语句:while, do-while, for
◇ 与程序转移有关的跳转语句:break, continue, return
◇ 例外处理语句:try-catch-finally, throw
◇ 注释语句://,/* */, /** */
2.3.1 分支语句
分支语句提供了一种控制机制,使得程序的执行可以跳过某些语句不执行,而转去执行特定的语句。
1.条件语句 if-else
if(boolean-expression)
statement1;
[else statement2;]
2.多分支语句 switch
switch (expression){
case value1 : statement1;
break;
case value2 : statement2;
break;
java语言基础教程
…………
case valueN : statemendN;
break;
[default : defaultStatement; ]
}
◇ 表达式expression的返回值类型必须是这几种类型之一:int,byte,char,short。 ◇ case子句中的值valueN必须是常量,而且所有case子句中的值应是不同的。 ◇ default子句是可选的。
◇break语句用来在执行完一个case分支后,使程序跳出switch语句,即终止switch语句的执行(在一些特殊情况下,多个不同的case值要执行一组相同的操作,这时可以不用break)。
2.3.2 循环语句
循环语句的作用是反复执行一段代码,直到满足终止循环的条件为止。Java语言中提供的循环语句有:
◇ while语句
◇ do-while语句
◇ for语句
1.while语句
[initialization]
while (termination){
body;
[iteration;]
}
2.do-while语句
[initialization]
do {
body;
[iteration;]
} while (termination);
3.for语句
for (initialization; termination; iteration){
body;
}
正在阅读:
JAVA语言基础教程05-22
美丽的西塘作文400字06-20
机械原理复习习题04-29
4S店售后服务部2011年上半年工作总结与下半年工作计划04-13
过年啦作文450字06-18
实验212-16
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 语言基础
- 教程
- JAVA
- 商务酒店设计注意事项 Microsoft Word 文档
- 2011-2015年中国凝胶糖果市场研究及前景预测咨询报告(原创)
- 湖南省2010年第六次全国人口普查主要数据公报
- 评优表彰大会主持词开头
- 含烯丙基的三元酚型苯并恶嗪的合成及性能_朱春莉
- 人教版小学四年级下册语文期末试卷
- 历年托福考试阅读真题汇总含答案
- 仓库出入库管理表格
- 泊头市中小学图书馆管理培训提纲
- 大学生寻求专业心理援助情况及其影响因素的调查分析
- 公共基础知识(单选题)
- 家具产品品质标准
- 红与黑读后感800字左右
- 数据结构课程设计之-树与二叉树的转换
- “提督益脑”针法对血管性痴呆大鼠脑组织SODMDA及AChE的影响
- 单片机IO口扩展设计
- 初中语文教师一学期教学工作总结
- 个人学习计划 计算机信息管理 姓名
- 日本著名景观设计师户田芳树:走进我的景观世界
- 清华大学热能工程系2002级期中考试A卷参考答案(含答案)