1、Java编程基本知识,Lu Wei,Introduction,In this chapter First look at Java Java语法基础 Java类与对象,Lu Wei,First look at Java,编辑源程序 我们可以不采用任何集成开发环境,只是采用文本编辑器就可以编写简短的Java程序。例:,Lu Wei,/* *Welcome.java is the first program in Java. */class Welcome / main method begins execution of Java applicationpublic static void ma
2、in( String args) System.out.println( “Welcome to Java Programming!“ ); / end class Welcome,Lu Wei,注释:Java里有三种类型的注释: 单行注释:表示这一行的从“/”开始的所有内容都是注释,这种类型的注释更常用,因为它书写时更方便。 多行注释: /* . */* This is a multipleline comment. It canbe split over many lines */ 文档注释:以 /* 开始,并以 */ 结束,注释中的每一行都必须以 * 开始。,Lu Wei,用class来
3、声明一个类,其类名为Welcome。 左括号:和右括号 是成对出现的,表示类的开始和结束。,对于一个Java应用程序来说,main方法是必须的,而且必须按照如上的格式来定义。,Lu Wei,这行程序用来实现字符串的输出,它相当于c语言中的printf()函数,所做的事是将字符串“Welcome to Java Programming!”打印到屏幕上。,Lu Wei,程序必需转换为Java虚拟机能够理解的形式,这样,任何安装有Java虚拟机的计算机就可以解释并运行该程序。 打开命令行窗口,进入存储Welcome .java的目录,敲入下面的命令:javac Welcome .java 如果没有错
4、误将生成Welcome .class文件。,产生 Welcome.class,编译文件,Lu Wei,现在可以运行该程序了,使用以下的命令:java Welcome 这里我们需留意的是,在这个命令行中文件名称不须附上扩展名“.class” 。,运行 Welcome.class,运行程序,Lu Wei,Welcome.java,Java 源代码,Java应用程序运行过程图示,Lu Wei,javac,Welcome.java,Java 编译器,Lu Wei,javac,Welcome.java,Welcome.class,字节码程序,Lu Wei,javac,Welcome.java,Welco
5、me.class,java,Java 虚拟机,Lu Wei,Java语法基础-标识符,标识符(Identifier) 包括:类名、变量名、常量名、方法名、在Java中标识符的命名必须符合以下规则: 标识符必须以字母或下划线或 $ 符号开始。其余字符可以是字母、下划线、$ 符号和数字。 标识符只能包含两个特殊字符,即下划线 (_) 和美元符号 ($)。不允许有任何其他特殊字符。 标识符不能包含空格。,Lu Wei,例: 合法的标识符identifier userName User_Name_sys_value $change 非法的标识符2mail room# class,Lu Wei,Java
6、语法基础关键字,关键字 具有专门的意义和用途,不能当作一般的标识符使用,这些标识符称为关键字。 下表列出了在Java编程语言中使用的关键字。,Lu Wei,Lu Wei,不必死记这些关键字,当理解每个关键字的含义后,自然就记住了所有的关键字。,Lu Wei,Java语法基础基本数据类型,Java 共有八种基本数据类型: 四种整数类型(byte、short、int、long) 两种浮点数类型(float、double) 一种字符类型(char) 一种布尔类型(boolean),Lu Wei,基本数据类型,Lu Wei,Java语法基础-常量,常量: 常量就是指在程序执行期间其值不能发生变化的数据
7、,常量是固定的。 常量用关键字final来定义,例: final int BOOSTER = 100;,Lu Wei,Java语法基础变量,变量: 同常量相反,变量的值是可以变化的。,Lu Wei,例:Java中的数据类型,Lu Wei,/SimpleTypes.java /Java中的数据类型 class SimpleTypes public static void main(String args)byte a = 0x44;short b = 044;int c = 1000000;long d = 0xfffL;char e = A;float f = 0.45F;double g =
8、 0.7E-5;boolean h = true;System.out.println(“a = “+a);System.out.println(“b = “+b);System.out.println(“c = “+c);System.out.println(“d = “+d);System.out.println(“e = “+e);System.out.println(“f = “+f);System.out.println(“g = “+g);System.out.println(“h = “+h); ,八种基本类型声明并赋初值,将八个值输出,Lu Wei,Java语法基础-算术运算符
9、,算术运算符包括加号(+)、减号(-)、乘号(*)、除号(/)、取余(%)、自增运算符(+)、自减运算符(-)等。,Lu Wei,算术运算符,Lu Wei,Java语法基础-关系运算,关系运算符用来比较两个值。 关系表达式将返回一个布尔结果。,Lu Wei,Java语法基础-控制流程,三种基本流程控制结构示意图分别如下图所示。,Lu Wei,Lu Wei,选择结构,选择结构 If选择语句 if-else 选择语句 switch 选择语句,Lu Wei,例:假如有7家餐馆:Joe, Tom, Kevin, Rich, Rose, Ken, Melissa。他们要在纽约时代广场的屏幕上做广告,编写
10、一个程序显示这7家餐馆的信息。,Lu Wei,例:为了节省费用,假如: Joe餐馆只在星期天做广告, Tom餐馆只在星期一做广告, Kevin餐馆只在星期二做广告, Rich餐馆只在星期三做广告, Rose餐馆只在星期四做广告, Ken餐馆只在星期五做广告, Melissa餐馆只在星期六做广告。,Lu Wei,一个switch语句可以代替多个ifelse语句组成的分支结构,而switch语句从思路上显得更清晰。,Lu Wei,练习:修改成switch语句。,Lu Wei,循环结构,Java中有三种语句来实现循环结构,分别是: while循环语句 do-while循环语句 for循环语句 它们的
11、结构分别如下图所示。,Lu Wei,Lu Wei,例:有一个饭店,层数从2到20,有三部电梯。电梯#1在该饭店的各层停靠,电梯#2只在偶数楼层停靠,电梯#3只在奇数楼层停靠。显示电梯停靠的楼层号码。 用For实现。,Lu Wei,for语句和while语句互相转化,for语句和while语句可以互相转化。for ( expression1; expression2; expression3 ) statement;可以写成: expression1; while ( expression2 ) statement; expression3; ,Lu Wei,例:电梯,用while实现。,Lu
12、Wei,类的创建,类将变量和方法封装在一起。 例:Person类,Lu Wei,创建对象,一个类可以生成多个对象,使用关键字new。下面是创建对象的语句: String s = new String (“hello”);,hello,s,Lu Wei,例: Table类 Table t = new Table(); Circle类 Circle c = new Circle();,Lu Wei,对象使用,创建新的对象之后,我们就使用“对象名.对象成员(包括变量和方法)”的格式,来访问对象。 对象名.变量名 对象名.方法名,Lu Wei,对象的生命周期,离开作用域P1失效,Person对象成为垃
13、圾。,Person p1 = new Person(); ,Lu Wei,Person p1 = new Person();p1 = Null; ,P1,Person对象,P1,Null,Person对象,成为垃圾,Lu Wei,Person p1 = new Person();Person p2 = p1;p1 = Null; ,P1,Person对象,P1,P2,Person对象,P1,Null,P2,Person对象,Lu Wei,private 和 public,如果外面的程序可以随意修改一个类的变量,会造成不可预料的程序错误。比如:一个人的身高,不能被外部随意修改,只能通过各种摄取营
14、养的方法去修改这个属性。 在定义一个类的成员(包括类的变量和方法)时,使用private关键字说明这个成员的访问权限,这个成员成了类的私有成员,只能被这个类的方法调用,而不能被其它类的方法调用。,Lu Wei,编译单元,一个.java文件就是一个编译单元。编译一个.java文件时,对应于文件中的每一个类,会得到一个.class文件,class文件名与类的名字相同。一个程序是一堆.class文件。,Lu Wei,private 和 public,为了实现良好的封装性,我们通常将类的变量声明为private,再通过public的方法,对这个变量进行访问。对一个变量的操作,一般都有读取和赋值的操作,
15、我们分别定义两个方法来实现这两种操作,一个是get(),用来读取这个变量;另一个是set(),用来对这个变量赋值。,Lu Wei,private 和 public,public 声明的变量和方法可从类外部的任何地方访问。 private声明的变量和方法将被隐藏,在类外不可见。 要从类外操纵private 成员,可以通过类的public成员来实现。,Lu Wei,构造方法Constructor,Constructor的特征: 构造方法的名字和类名相同 构造方法没有返回值。 构造方法主要用于为类的对象定义初始化状态。 Java的类都要求有构造方法,如果没有定义构造方法,Java编译器会为我们提供一
16、个缺省的构造方法。,Lu Wei,Java编程规范,类名:首字母大写,通常由多个单词合成一个类名,要求每个单词的首字母也要大写,例如class HelloWorld。 方法名:往往由多个单词合成,第一个单词通常为动词,首字母小写,中间的每个单词的首字母都要大写,例如:balanceAccount, isButtonPressed。 变量名:全小写,一般为名词,例如:length。 常量名:基本数据类型的常量名为全大写,如果是由多个单词构成,可以用下划线隔开,例如:int YEAR, int WEEK_OF_MONTH;如果是对象类型的常量,则是大小写混合,由大写字母把单词隔开。 Java编码规
17、范,Lu Wei,Java帮助文档,Java帮助文档,Lu Wei,Javadoc,Javadoc d doc classname.java,Lu Wei,练习:餐馆做广告,现在只剩Tom餐馆和Rose餐馆。Tom在星期一、二、三做广告,Rose在星期四、五、六做广告,用面向对象的思想修改前面的Show.java,Lu Wei,Summary,Java 具有8种基本数据类型:byte、 short、 int、 long、 boolean、char、float 及 double 算术运算符、关系运算符 Java 支持下列控制结构: 顺序 选择( if-else、switch) 循环(while、do-while、for),Lu Wei,Summary,如何创建一个类。 如何创建一个对象。 如何访问一个对象的变量和方法。,Lu Wei,选择语句,if structure (single selection),T,F,顺序语句,F,T,if/else structure (double selection),T,F,break,T,break,T,break,F,F,switch structure (multiple selection),Lu Wei,T,F,while structure,T,F,do/while structure,循环语句,F,T,for structure,