第一章 Java 概述
学习目标
1. 能够概括Java语言的特点,了解OOP的核心概念
2. 能够独立完成Java开发环境的安装与环境变量的设置,熟悉Java开发运行环境JDK,了解Java核心API文档,能够查找制定的类和方法
3. 了解Java 程序的基础知识,能够正确变异运行最简单的程序
建议学时:2 学时
Java语言简介
前身为1991年由Sun公司推出的Oak语言,1995年Sun公司将Oak命名为Java。2009年Oracle 收购Sun
Java分为 J2SE(标准版),J2EE(高性能企业版),J2ME(移动版)
Java语言的特点
Java是简单的,面向对象的语言,多线程,跨平台的语言
- 语法简单,功能强大,安全可靠
- 与平台无关,Java 虚拟机是通过在实际的计算机上仿真模拟各种计算机功能来实现的。不同操作系统有不同的虚拟机,它类似于一种小巧而高效的CPU,JVM用来在指定的平台把字节码解释为具体平台的机器码执行,从而使java实现跨平台
- 解释编译两种运行方式
- 多线程
- 动态执行,兼有丰富的api文档以及类库
Java开发环境的安装和设置
bin 目录下的java开发工具以及用途如下
- javac 编译器,将java代码转换为字节码
- java 解释器,执行字节码程序
- jdb 调试器,用来调试java程序
- javap 反编译,将类文件还原为方法和变量
- javadoc 文档生成器,创建HTML文件
设置环境变量
1. 新建JAVA_HOME变量,值为 C:\work\jdkxxx\
2. 新建CLASSPATH 变量,值为 .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
3. 在PATH 中添加 值为 ;$JAVA_HOME\bin;$JAVA_HOME\jre\bin
Java 程序
创建一个最简单的程序
public class HelloWorld{
// main方法只被java解释器调用
public static void main(String []args){
System.out.println("Hello World");
}
}
编译
命令: javac 【选项】 源文件名.java
运行
命令: java【选项】 字节码名 【参数列表】
Java核心api文档
能够在线查阅
面向对象
面向对象的方法学通常包括3个方面:
- 面向对象的分析(OOA,Object-Oriented Analysis)
- 面向对象的设计(OOD,Object-Oriented Design)
- 面向对象的程序设计(OOP,Object-Oriented Programming)
OOP
对象有两个特点,状态(对象本身的信息)和行为(对对象的操作) OOP的三大技术,封装(encapluency),继承(extends)和多态(方法重载)
第二章 数据和表达式
1. 掌握Java语言命名标识符的规则,熟记关键字,能够在程序中正确使用注释和空白,能够正确定义标识符
2. 掌握java所有的基本数据类型,对应的关键字,范围,常量值含义,转义字符含义
3. 掌握运算符含义和优先级,掌握变量生命,初始化,赋值方法,能够判别变量的作用域。掌握java表达式的表示方式,掌握表达式的提升和转换方法,初步掌握Java中提供的数学函数的使用方法
基本语法元素
-
空白,编译器会自动忽略空白
-
注释
单行注释 // 多行注释/* */ 文档注释/** */ @param 参数 @throw 异常 @return 返回值
关键字
abstract boolean break private public protected final while continue interface class byte case try catch throw const default short int long float double false true 等等
标识符
字母,数字,下划线,美元符号,数字不能在开头,标识符可以用作变量名,方法名,接口名,类名。
Java源代码中使用Unicode编码支持 字符数可达65535个,其兼容了许多不同的字母表,包括常见语种的字母。汉字也是字符,所以可以出现在标识符中。
命名风格
做到见名知意
数据类型
4类8种
整数型,浮点型,布尔型,字符型
byte,short,int,long, float,double ,boolean, char
复合数据类型(引用类型)
class,接口,数组
整型 byte short int long
8字节,16字节,32字节,64字节
| 类型 | 数值范围 |
|---|---|
| byte | -28-1 ~ 28 |
| short | -216-1 ~ 216 |
| int | -232-1 ~ 232 |
| long | -264-1 ~ 264 |
整型量可以使用 十进制,八进制,十六进制表示,以0~9开头的数为十进制,以0开头的数为八进制,以0x开头的数为十六进制
整型常量是int型的。如果表示一个长整型常量,需要在数的后面明确写出字母L
浮点型发 float double
| 类型 | 数值范围 |
|---|---|
| byte | -28-1 ~ 28 |
浮点型
float,double
进制转换
二进制转换为十进制
由二进制数转换成十进制数的基本做法是,把某进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。
十进制转换为二进制
整数
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。
浮点数
十进制小数转换成二进制小数采用"乘2取整,顺序排列" 法
字符类型char
表示一个Unicode字符,值使用16位无符号表示,范围位0~65535
| 转义字符 | 含义 |
|---|---|
| \b | 退格键 |
| \n | 换行符 |
| \r | 回车键 |
| \t | 水平制表符 |
| \ | 反斜杠 |
| \' | 单引号 |
| \'' | 双引号 |
boolean 类型
逻辑值,true 或者 false
表达式
表达式由运算符和操作数组成,对操作数进行运算符制定的操作,并得出运算结果
操作数
常量
常量操作数很简单,只有简单数据类型和String 类型才有相应的常量形式
变量声明以及初始化
语法: 类型 变量名1 =[初始值1],[变量名2 =[初始值2]] ...;
数学函数
| 函数 | 作用 |
|---|---|
| sin | 正弦函数 |
| cos | 余弦函数 |
| round | 四舍五入 |
| sqrt | 开平方 |
| pow | 平方 |
| max | 最大值 |
| min | 最小值 |
| random | 最大值 |
数学运算符
-
-
- / ++ --
+= -= *= /=
- / ++ --
-
关系运算符
>, < , ==, <=,>=,!=
逻辑运算符
二元运算符 && ,||
一元运算符 !
位运算符
| 符号 | 作用 |
|---|---|
| >> | 算术右移(高位填充,能保证符号) |
| >>> | 逻辑右移(无符号右移,移位置全部补0,不能保证符号) |
| << | 左移 |
| & | 按位与 |
| | | 按位或 |
| ~ | 取反 |
| 异或 |
流程控制语句
第一节 Java 程序的结构
-
Java 程序由一个或者多个java 文件组成,这些文件被称为源文件。每个源文件中包含一个或者多个类、接口。如果有多个类,只能且必须存在一个public 修饰的与源文件名称一致的类。
-
package语句:包语句,每个文件只能存在一个,且必须放在文件开始的地方
-
import语句:引入语句,可以存在0至多个,如果有的话,必须放在类定义之前 具有public权限的类,只能存在一个
-
类定义: 非public类可以有多个
-
接口定义:可以包含多个
Java包的概念
包是类的容器,包的设计人员通过利用包来划分名字控件,以避免类冲突。
第八章 图形界面设计
顶层容器
JFrame :带有标题和控制按钮的独立窗口
JApplet:小应用程序需要,被包含在浏览器窗口中
JDialog
JFrame jFrame = new JFrame("JFrame Demo");
JButton jButton=new JButton("Press me");
// 按钮居中显示
jFrame.getContentPane().add(jButton, BorderLayout.CENTER);
// 将jFrame 设定为适当的大小
jFrame.pack();
jFrame.setVisible(true);
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
内容窗格
JFrame jFrame = new JFrame("JFrame JPanel Demo");
JButton jButton = new JButton("press ");
JPanel jPanel=new JPanel();
jPanel.setLayout(new BorderLayout());
jPanel.add(jButton,BorderLayout.CENTER);
jFrame.setContentPane(jPanel);
jFrame.pack();
jFrame.setVisible(true);
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);