Java大学实用教程1-4章知识点
更新时间:2024-04-14 09:46:01 阅读量: 综合文库 文档下载
Java大学实用教程
======================================================================================= 第一章 Java语言概述 1.3 Java的特点
掌握Java跨平台的原理 1.5 Java运行平台
了解JavaSE、JavaEE与JavaME的应用范围 系统变量Path的设置及其作用 将JDK工具命令的路径设置到Path变量中后,可以在任意位置运行那些命令。 系统变量ClassPath的设置及其作用 设置查找类的路径。
ClassPath中如果设置了某些路径,则必须向其中添加当前目录(.),否则JVM不会在当前目录查找类。
1.6 Java程序开发
Java程序必须有一个主类(含有main函数),作为程序执行的起点。 掌握源文件命名规则
编译Java源文件:javac Hello.java (源文件中的所有类都会被编译并生成.class文件) 运行Java程序:java Hello (执行的必须是一个主类名,不包括.class)
Java Applet的运行原理:在html文件中通过标记嵌入applet代码,浏览器将相应的字节码文件下载到本地,利用其内置的Java虚拟机解释执行字节码文件,将结果显示到浏览器中。
======================================================================================= 第二章 基本数据类型和数组 2.1 标识符和关键字
标识符的命名规则:Java的标识符由字母(尽管可以使用世界上所有语言的字母,但建议只使用英文字母)、 下划线、$、数字组成,第一个字符不能是数字。Java的关键字不能作为标识符。 2.2 基本数据类型
整型常量默认为int类型,如果超出了int的表示范围,需要在后面添加l。 浮点型常量默认为double类型,如果为float常量,需要在后面添加f。
char类型:char类型本质上是一个16位的无符号整数,char c='a'与char c=97等价。有时候必须使用转义字符,例如:char c1='\\'',c2='\\\\';(例2-1) 2.3 基本数据类型的转换
数据类型的精度顺序
char
byte short int long float double
低精度类型到高精度类型可以自动转换,高精度类型向低精度类型必须强制转换。强制转换可能导致溢出或精度损失,如:byte b=(byte)130。 2.4 数据的输入与输出
System.out.print或println输出变量或者表达式的字符串表示
例如:'a'+1的输出为98,\的输出为a=a1,\的输出为a=98 System.out.printf(控制字符串,表达式1,表达式2,...)(例2-3)
常用控制符:%s,%n,%c,%d,%f
%md:输出整数,m列宽,右对齐;
%-m.nf:输出浮点数,m列宽,小数点后保留n位(四舍五入),左对齐;
Scanner类(例2-4)
创建读取对象:Scanner reader=new Scanner(System.in);
读取数据:调用reader.hasNextXxx()方法判断输入的是否是xxx类型的数据,再调用reader.nextXxx()方法读取数据。 2.5 数组
数组下标从0开始,下标越界运行会报错。
声明数组:int[ ] a;
int[12] a;是错误的,创建数组时才能分配内存空间,才能指定数组大小。 创建数组:a=new int[12];
声明和创建可以一步完成:int[ ] a =new int[12]; 数组的初始化
创建数组后,每个元素有一个初值,数值型为0,布尔型为false,引用型为null。 声明、创建和初始化可以一步完成:int[ ] a={3,5,2,-9,8}; length的使用
a.length可以得到一维数组的元素个数。
Java中的多维数组是数组的数组,会画多维数组的内存模型。
如:int[ ][ ][ ] a=new int[3][4][6]; 则a.length=? a[2].length=? a[1][2].length=?
数组属于引用数据类型,两个相同类型的数组如果具有相同的引用,它们就拥有完全相同的数组元素。
课后问答题和作业
问答题:4,5,6,9,10
======================================================================================= 第三章 运算符、表达式与语句 3.1 算术运算符和算术表达式
+ - 4级,* / % 3级,++ -- 2级 y=++x;与y=x++;的区别
进行算术运算时,byte、short、char类型自动提升为int类型。 Java按运算符两边的操作元的最高精度保留结果的精度。 3.2 关系运算符和关系表达式
> >= < <= 6级,== != 7级
==不要写成=,前者是比较,后者是赋值。 3.3 逻辑运算符和逻辑表达式
短路与:&& 11级,短路或:|| 12级,逻辑非:! 2级 非短路与:&,非短路或:|
短路是指,如果逻辑表达式的值已经确定,将不再计算未计算的部分。 3.4 赋值运算符和赋值表达式
= 14级,左边必须是变量 运算符优先级顺序
算术>关系>逻辑(!除外)>赋值,如:a>b+3&&a<100 没问题,如果不确定可以加括号。 3.5 移位运算符
左移位:右侧用0填充,相当于乘2
右移位:左侧用0(正数时)或1(负数时)填充,相当于除2 进行移位运算时,byte、short、char自动提升为int 3.6 位运算符
按位与:&,按位或:|,按位非:!,按位异或:^ 进行位运算时,byte、short、char自动提升为int 3.7 条件运算符
exp1?exp2:exp3
exp1必须是boolean表达式,若exp1为true,则结果为exp2;若exp1为false,则结果为exp3。
3.8 instanceof运算符
a instanceof B:若a是类B或类B的子类的实例,则返回true。 3.11 分支语句
1)条件分支语句
简单形式:if...else...
多条件形式:if...else if...else if... ...else... 2)switch开关语句
执行过程:一旦遇到匹配的入口,就从入口处开始执行语句,直到遇到break语句为止;如果未找到匹配的入口,就执行default后面的若干语句,default不是必须的。 注意:不要忘记必要的break语句,否则会多执行语句。 3.12 循环语句
1)while循环
while(boolean表达式){
若干语句 }
2)do-while循环
do{
若干语句
}while(boolean表达式); //分号别忘记 特点:至少执行一次循环体 3)for循环
for(初始化表达式;boolean表达式;改变循环变量表达式){
若干语句 }
3.13 跳转语句
break:跳出整个循环
continue:跳过循环体中后面的语句,进行下一次循环
课后问答题和作业
问答题:1,2,3,4,8 作业:6,7,8
======================================================================================= 第四章 类与对象 4.1 面向对象编程
封装:将数据和对数据的操作封装在一起,通过抽象(从具体的实例中抽取共同的性质)形成一般的概念,比如类的概念。
Java程序设计的基本单位是类(class)。
类有两种基本成员:变量和方法。变量用来刻画对象的属性,方法用来体现对象的功能。 4.2 类声明和类体
类封装了一类对象的属性和功能,是用来定义对象的模板,类的对象称为类的实例。
class 类名{
类体的内容 }
类的命名规范:例如,Triangle SimpleDateFormat 4.3 类体的构成
类体由成员变量和方法构成。
成员变量和方法的命名规范:例如,userName addUser
成员变量的类型可以是Java中的任何一种数据类型,包括基本数据类型和引用数据类型。 一般,在类的前部声明成员变量。
在定义类的成员变量时可以同时赋予初值,表明类所创建的对象的初始状态。 4.4 构造方法与对象的创建
构造方法是一种特殊方法,它的名字必须与它所在的类的名字完全相同,而且没有返回值类型。 构造方法可以重载,类创建对象时必须调用某个构造方法。
如果类中定义了一个或多个构造方法,那么编译器不提供默认的构造方法。 创建一个对象包括对象的声明和为对象分配成员变量两个部分。
对象的声明:Rect rect1; //此时rect1没有指向任何实体 为对象分配成员变量:
1)new一个Rect对象。过程:为成员变量开辟内存空间并清零(数值型为0,布尔型为false,
引用型为null),执行定义初始化,执行构造初始化。
2)将对象实体的引用赋给对象变量rect1。
一个类通过使用new运算符可以创建多个不同的对象,这些对象将被分配不同的内存空间。 对象可以使用运算符“.”调用方法。方法中的局部变量没有默认值,使用前必须初始化。 4.5 对象的引用与实体
不再被任何对象引用的实体将成为“垃圾”,会被JVM自动回收。
如果将关键字null赋值给对象,就意味着对象不再引用任何实体,成为空对象,使用空对象会引发空指针异常。 4.6 成员变量
类变量:类被加载到内存时,类中的类变量就被分配了相应的内存空间,并执行清零和定义初始化操作。类变量只分配一处内存,类的对象共享类变量。可通过类名和对象访问类变量。
实例变量:new对象时,实例变量被分配内存空间,不同对象的实例变量分配不同的内存空间。必须通过对象访问实例变量。
常量:不可修改,在声明的同时必须初始化。例,final int MAX_VALUE=1000; 4.7 方法
当对象调用方法时,方法中出现的成员变量就是指分配给该对象的成员变量。对象不可以调用构造方法。 方法的定义
返回值类型 方法名(类型 参数1,类型 参数2,...){
局部变量的定义和合法Java语句 }
除构造方法外,返回值可以是任意的Java类型。参数可以是任意的Java类型。 除构造方法外,方法无返回值时,返回值类型必须是void。
类方法:用static修饰,可通过类名和对象调用,方法中只能访问类变量和类方法。 实例方法:必须通过对象调用,方法中可以访问所有变量和方法。
参数传值:在Java中,方法的所有参数都是“传值”的,即方法中参数变量的值是调用者指定的值的拷贝。
对于基本数据类型的参数,参数的值是向参数传值的变量的值的拷贝,方法如果改变参数的值,不会影响向参数传值的变量。(例4-5)
当参数是引用类型时,“传值”传递的是变量的引用。 如果改变参数变量所引用的实体,就会导致原变量的实体发生同样的变化。改变参数的引用不会影响向其传值的变量的引用。(例4-6) 4.8 方法重载
方法重载(overload):一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,或者参数的个数不同,或者参数的类型不同。(例4-8) 4.9 关键字this
代表调用方法的当前对象,一般可省略,主要用于区分局部变量和成员变量。 4.10 包
包是Java语言中有效管理类的一种机制,类似于文件系统中的目录。
package语句作为Java源文件的第一条语句,指明该源文件定义的类所在的包。例,package cn.edu.hrbcu; 如果源程序中省略了package语句,源文件中所定义的类被隐含地认为是无名包的一部分,不建议使用无名包。 建议用自己所在组织的域名的倒置作为包名。
有包名的类编译生成的字节码文件必须放入与包名相对应的目录结构中。程序运行时如果使用了该类,程序必须能够找到该目录结构以及放在其中的字节码文件。
编译有包名的类
javac -d 目标路径 源文件 //将在目标路径处生成与包名相对应的目录结构,生成的字节码文件被放入其中。 有包名的类的全名是带包名的。
4.11 import语句
使用import 语句可以引入包中的类,这样在代码中就可以不用写类的全名。
一个Java源程序中可以有多条import语句,它们必须写在package语句(假如有package语句的话)和源文件中类的定义之间。
引入某个类:import java.util.Date; 引入包中的所有类:import java.util.*;
Java类库的字节码文件及其目录结构被压缩到了 Java安装目录\\jre6\\lib\\rt.jar中,JVM会自动到该文件中查找Java类库中的类。
可以通过classpath设置查找类的路径
临时设置
1)在执行程序时指定classpath参数(本次执行有效)
2)在“命令提示符”窗口中执行set classpath=(关闭窗口后设置会失效) 永久设置
在系统属性中设置classpath环境变量。
未设置classpath时,JVM会在当前目录中查找类。
4.12 访问权限
成员访问权限
成员访问权限是指可否通过“.\访问成员。实例方法内总是可以访问一切成员,类方法内总是可以访问一切类成员,与访问权限无关。
private:类内部可访问。 友好:同包的类可访问。
protected:友好加子类可继承。 public:随意访问。
一般将成员变量设为私有,通过public的读写方法进行访问;常量一般设为public static final,通过类名访问。 类访问权限
public类:对所有类都可见。 友好类:对同包的类可见。
4.13 对象的组合
一个类可以把对象作为自己的成员变量,该类创建的对象就会包含其它对象,形成组合(Has-A)关系。 4.14 基本类型数据的包装类
各包装类中有一些实用方法。 4.16 JAR文件
Java运行环境扩展:Java安装目录\\jre\\lib\\ext文件夹。
可以使用jar命令把一些类的字节码文件压缩成一个JAR文件。步骤如下:
1)编译源文件(使用-d参数),将生成的目录结构放入一个目录,比如C:\\lib。 2)在C:\\lib目录下,执行jar命令 jar -cf test.jar 要打包的目录名。 3)如果将生成的test.jar放入Java运行环境扩展中,则可以在任何Java程序中使用该JAR包中的类, JVM会自动找到该JAR包;否则,需要通过classpath指定test.jar的位置。
课后问答题和作业:
问答题:3-14 作业:1,3,6
=======================================================================================
正在阅读:
Java大学实用教程1-4章知识点04-14
最新苏教版四年级下册数学期中复习教案08-13
路基边坡防护工程施工作业指导书12-17
宪法学论文题目12-17
旋光度测定标准操作规程03-11
实验2-音频DSP程序编写与调试04-26
发电厂安全检查表01-25
2017年陕西省宝鸡市金台区高一下学期期末数学试卷与解析答案12-31
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 知识点
- 实用
- 教程
- 大学
- Java
- 安装工程计量与计价考试题库
- 村医先进事迹材料
- CATIA 3D线束设计作图顺序
- 泽稷网校:ACCA F1考100分大神笔记整理
- 山东省济南第一中学2015-2016学年高二下学期期中考试 物理(文)
- 新视野大学英语第四册读写教程课文翻译
- 疯狂背古诗245首
- 会计制度设计 课程标准
- 餐饮管理与服务卷A卷
- 白浪镇灾后重建实施方案
- 园林树木学教案
- 河北省2013年高考数学专题复习 专题1 集合与简易逻辑 新人教A版
- 羽毛球考试资料
- 仇英
- 全国小学语文教材共13个版本各有什么特色
- Erp试题复习范围
- 2016年公共危机管理
- 甘谷县中小学教育教学质量考核奖励实施办法
- 常见传染病防控技术指导意见书
- 桩基基础基坑开挖、破桩头、垫层浇筑施工技术交底-secret