JAVA基础 - 东南大学计算机科学与工程系

Download Report

Transcript JAVA基础 - 东南大学计算机科学与工程系

JAVA面向对象程序设计
沈傲东
东南大学影像科学与技术实验室


Email: [email protected]
QQ群: 2803598884 (请注明学号、姓名)
2
辅导说明
 联系方式



Email: [email protected]
QQ: 2803598884 (验证:学号姓名)
Office:计算机楼101(周二1:00-3:00)
 助教信息



李晟泽 :[email protected] [1-2]
黄州龙: [email protected] [3-4]
作业及问题发送到相应的邮箱!
3
参考书
Henry Winston (麻省理工学
院) 等著,Java 2 专家导引(英文版),第3
版,机械工业出版社,2005年7月
 (美)C.Thomas Wu 著,马素霞 等译,面向
对象程序设计教程(Java版),第4版,机械
工业出版社,2007年7月
 (美)Patrick
等著,Java编程规范(第三
版) ,中国电力出版社, 2006年7月
 (美)James
4
主要内容
 1.
 2.
 3.
 4.
 5.
 6.
 7.
 8.
JAVA语言基础
类和对象
高级语言特性
异常处理
界面设计
JAVA特性和项目Project
线程
网络
5
课程目的与要求
 掌握基于JAVA的面向对象程序设计



JAVA语言的特点
面向对象的概念
UML的基本概念
 应用JAVA实现简单应用系统的设计与开发
 培养良好的面向对象的设计与开发思维
 培养良好的编程习惯
 培养团队协作精神
6
考核
 平时作业20%
 期末考核80%

小组成绩70%+个人成绩30%
 考核形式



教师评分
分组评分
组内评分
7
灵活的指针
随意的
GOTO
*p, **p, *f()
内存泄露
链接错误
8
什么是 JAVA
Application
Oak
Applet
Servlet
James Gosling
1995年5月23日
9
JAVA概述
JAVA程序的环境配置与开发流程
JAVA语言基础
常用JAVA包
标识符、关键字
流程控制
JAVA的基本特点
10
• 类似于C++
• 纯的面向对象
• 自由加入新功能
• 内置多线程
可扩展性
• JVM
• JIT
简单
面向对象
健壮性
解释执行
高性能
• 自动垃圾收集
• 异常处理
分布式
可移植性
• 跨平台
• 源代码、可执行代码
• 支持远程访问
11
开发环境
- lib
编译器
类库
- -rt.jar
-bin
--javac.exe
JDK
-bin
--java.exe
- jre
调试器
运行时环境
http://www.oracle.com/technetwork/java/javase/downloads/index.html
12
开发环境
 环境变量

JAVA_HOME


CLASSPATH


C:\Program Files\Java\jdk1.7.xx
.;%JAVA_HOME%/lib;%JAVA_HOME%/jre/lib/e
xt
Path
 …;%JAVA_HOME%/bin
 Windows设置方法
 DOS设置方法
13
JDK 提供的常用工具

javac 是用来编译源代码的命令。

java 是用于执行类文件的命令,而类文件将在
Java 虚拟机中运行类。

appletviewer 命令允许在万维网浏览器的环境之
外运行 Applet。
javap反汇编程序可以从字节码文件恢复java原代
码。
javadoc是文档发生器。利用此工具,可以为所编
写的源文件生成HTML文档,其中包括对类和接口的
描述、类的继承层次以及类中任何非私有域的索引
和介绍。


14
开发工具
 NetBeans[Free]

http://netbeans.org/
 Eclipse[Free]

http://www.eclipse.org
 Jcreator
 MyEclipse
 IntelliJ

http://www.jetbrains.com/idea/
15
Java Application程序基本结构
import语句
class
主类名称
{
public static void main(String[ ] args)
{
方法体
}
}
16
第一个 Java 程序
//这是名称为“HelloWorld.java”的简单程序
单行注释
导入
必要的包
import java.io.*;
class HelloWorld {
定义类
public static void main(String args[ ])
Main函
{
数
System.out.println(“欢迎访问 Java 世界!“);
}
}
在控制台上输出
17
关键字2-1


原始数据类型
- byte
- short
- int
- long
- float
- double
- char
- boolean
循环关键字
- do
- while
- for
- break
- continue

分支关键字
-

if
else
switch
case
default
break
方法、变量和类修饰符
-
private
public
protected
final
static
abstract
synchronized
volatile
strictfp
18
关键字2-2
 异常处理
-
try
catch
finally
throw
throws
 对象相关关键字
-
new
extends
implements
class
instanceof
this
super
• 字面值常量
- false
- true
- null
• 方法相关关键字
- return
- void
• 包相关关键字
- package
- import
算术运算符
运算符
含义
示例
求值
优先级
+
加
c=a+ b
4
-
减
c=a- b
4
*
乘
c=a* b
3
/
除
c=a/ b
3
%
取模
c=a% b
3
++
递增
a++
2
--
递减
b--
2
+=
相加并赋值
c += a
c=c+a
-=
相乘并赋值
c *= a
c=c*a
/=
相除并赋值
c /= a
c=c/a
%=
取模并赋值
c %= a
c=c%a
取负数
c= - a
-
19
关系运算符
关系运算符用于测试两
个操作数之间的关系。
关系表达式将返回一个
布尔结果。
运算符
含义
示例
优先级
==
等于
a==b
7
!=
不等于
a!=b
7
>
大于
a>b
6
<
小于
a<b
6
>=
大于或等于
a>=b
6
<=
小于或等于
a<=b
6
20
逻辑运算符
运算符
逻辑运算符与布尔操
作数一起使用
含义
示例
优先级
&
逻辑与
A&B
8
|
逻辑或
A|B
10
^
逻辑异或
A^B
9
!
逻辑反
!A
2
||
短路或
A || B
12
&&
短路与
A && B
11
21
22
用于 int、short、long、
byte 和 char 数据类型
位运算符
运算符
含义
示例
~
按位非(NOT)
b = ~a
&
按位与(AND)
c=a&b
|
按位或(OR)
c=a|b
^
按位异或(XOR)
c=a^b
>>
右移
b = a >> 2
>>>
右移,左边空出的位以0填充
b = a >>> 2
<<
左移
b = a << 1
左移赋值
b<<=2
<<=
23
赋值运算符
 一次可以为多个变量赋值,如:
int a = 20000;
int p,q,r,s;
p = q = r = s = a;
 优先级最低为14
赋值运算符 (=) 用于为
变量赋值
24
三元运算符 (?:)
条件 ?
表达式 1 : 表达式 2
true
false
三元运算符 (? :) 可
以替代 if-else 结构
class TernaryOp
{
public static void main(String args[])
{
int salary,daysPresent = 30;
salary = daysPresent == 20 ? 2000 : 3000;
System.out.println("您本月薪资为 $"+salary);
}
}
25
Instanceof 运算符
可以确定对象是否
属于一个特定的类
class InstanceOfDemo {
public static void main (String args []) {
InstanceOfDemo t = new InstanceOfDemo( );
if (t instanceof InstanceOfDemo) {
System.out.println ("T是InstanceOfDemo 的实
例");
}
else {
System.out.println ("T不是InstanceOfDemo 的实
例!");
}
}
}
26
整型数据类型
类型
缺省值 长度
计算机的补码表示
数的范围
封装类型
byte
0
8位
-128 ~ 127
Byte
short
0
16位
-32,768 ~ 32,767
Short
int
0
32位
-2,147,483,648 ~
2,147,483,647
Integer
long
0
64位
-9,223,372,036,854,775,808 ~
9,223,372,036,854,775,807
Long
27
浮点型数据类型
类型
缺省值 长度
数的范围
Wrapper类型
float
0.0
32位
3.4E-038~3.4E+038
Float
double
0.0
64位
1.7E-308~1.7E+308
Double
字符数据类型
类型 缺省值 长度
char
'\u0000'
16位
数的范围
Wrapper类型
\u0000 ~ \uFFFF
Character
布尔数据类型
类型
缺省值
长度
数的范围
Wrapper类型
boolean
false
1位
false、true
Boolean
28
29
包-package
域名倒写
逻辑分类
避免
命名冲突
权限控制
• 创建包
package mypackage;
• 访问包
mypackage.My_Class
• 导入包
import mypackage.*;
• 导入子包
import
mypackage.sub_package.*;
包
包可以是类、接口
和子包的集合。
30
目录布局及CLASSPATH环境变量
 包被贮存在包含包名称的目录树中。
package abc.financedept;
public class Employee { }
javac –d . Employee.java
 Employee.class的目录路径是什么?
31
数组
 声明

int a[];
 不定长数组

 分配

a=new int[5];
 高维数组

int b[][] = new
b[2][3];


int b[][] = new
int[2][];
b[0] = new int[2];
b[1] = new int[3];
32
Java 程序的运行环境
Java是解释执行的高级编程语言
编译
编译型源程序
可执行程序EXE
连接
Java源程序
.java
编译
字节码程序
.class
执行
解释
执行
解
释
器
操
作
系
统
Java虚拟机
裸
机
33
JAVA学习思路
 正确安装JDK、配置合适的开发环境
 掌握Java的语法
 学习Java的面向对象的编程语言的特性
 熟悉Java类库

rt.jar(java.lang.*; java.io.*; java.util.*; java.sql.*)
 学习GUI、多线程编程

J2SE
AWT、SWING、THREAD
 学习WEB编程
 学习J2EE编程
34
JAVA学习方法
 Copy-Modify-Master-Summary
 JAVA帮助文档Help
 中文版: http://download.java.net/jdk/jdk-apilocalizations/jdk-api-zhcn/publish/1.6.0/chm/JDK_API_1_6_zh_CN.CHM

英文版:
http://docs.oracle.com/javase/7/docs/api/
 网络资源

常见问题:
http://java.chinaitlab.com/base/37356.htm
l
35
作业
 打印杨辉三角

System.out.println(); // 控制台输出
 一个数如果恰好等于它的因子之和,这个数就称
为“完数”.编写一个应用程序求1000之内的所有
完数.
 提交作业说明




请用压缩工具打包成单个文件
文件名称:学号+姓名
内容:源码、数据库文件、其他资源文件
或者Eclipse完整的工程文件