java
第一章 初识JAVA
单词
Public |
|
|
公共的,公众的 |
Static |
|
|
不变的,静态的 |
Void |
|
|
空的,无效的 |
Main |
|
|
主要的,干线 |
Class |
|
|
类,等级,级别 |
System |
|
|
系统,体系 |
Out |
|
|
输出,外面 |
|
|
|
印刷,出版,打印 |
1.1、什么是程序
程序一词源于生活,通常指完成某些事的一种既定方式和过程!
程序:为了让计算机执行某些操作或解决某个问题而编写的一些列有序指令的集合
1.2、为什么学习java语言
Java技术可以应用在几乎所有类型和规模的设备上,小到计算机芯片,蜂窝电话,打到超级计算机。无所不在
在当前的软件开发行业中,java已经成为了绝对的主流。java领域的javaEE,javaSE,技术发展成为同微软公司的c#和.net技术平分天下的应用软件开发技术和平台。
1.3、java可以做什么
在计算机软件应用领域中,可以把java应用分为两种典型类型。一种是安装和运行在本机上的桌面程序,另一种是通过浏览器访问的面向internet的应用程序
java还能做出非常炫的图像效果。
1.4、java技术平台简介
javaSE和JavaEE
JavaSE:全称 java Platform Standard Edition(java平台标准版),是java技术的核心,提供基础的java开发工具,执行环境与应用程序接口(API),主要用于桌面应用程序的开发。
JavaEE:全称 Java Platform Enterprise Edition(Java平台企业版),他主要用于网络程序和企业级应用的开发。
任何Java学习者都要从JavaSE开始,javaSE是Java语言的核心,而JavaEE是javaSE的扩展。
1.5、开发第一个Java程序
1、开发Java程序的步骤
第一步、编写源代码
在明确了要计算机做的事情之后,把要下达的指令逐条用Java语言描述出来。
通常这个文件我们称为源程序或者源代码,其后缀名是.java
第二步、编译
通过编译器编译我们的.java文件,生成.class文件,我们称它为字节码文件。
第三版、运行
在java平台上运行生成的字节码文件,便可看到运行结果。
JDK(java development kit,java开发工具包)实现了编译和运行的功能。
Java程序基本框架
public class HelloWorld{
public static void main(String[] args){
System.out.println("HelloWorld");
}
}
Javac 命令可以在控制台进行java源文件的编译
Java 命令可以在控制台运行Java字节码文件
1.6、分析java程序
1.6.1、java程序结构
1、编写程序框架
public class HelloWorld{}
HelloWorld是类名必须和文件名称一样。属于这个类的代码都要放在大括号中间
类必须用用class修饰
2、编写main方法的框架
public static void main(String[] args){}
main()方法是java程序的入口,是所有java应用程序的起始点,没有main()方法,计算机就不知道该从哪里开始执行程序,注意,一个程序只能有一个main()方法
1.6.2、java程序注释
1、多行注释以“/*”开头,以“*/”结尾。在他们之间的内容被看做注释
2、单行注释、以“//”开头,每行“//”后面的文字被看做是注释
1.6.3、java编码规范
一个软件在开发和使用过程中,80%的时间是花费在维护上的,编码规范可以增加代码的可读性,使软件开发和维护更加方便
规范
//类名必须使用public修饰
一行只写一句代码
用{}括起来的部分通常表示程序的某一层次结构,"{"一般在这一结构开始行的最末,“}”与该结构的第一个字母对齐,并单独占一行
第一层次的语句或注释应该比高一层次的语句或注释缩进若干格后书写,使程序更加清晰,增加程序的可读性
1.8 java程序开发利器——eclipse平台
集成开发环境(IDE) IDE是一类软件,它将程序开发环境和程序调试环境集合在一起,帮助程序员开发软件。通常IDE包括编辑器,编译器和调试器等多种工具,
在Eclipse中创建工程
1、创建一个Java项目(Java project)
2、创建并编写java源程序(Class)
3、编译java源程序
Eclipse自动编译
4、运行java程序
1.8.1、java项目组织结构
1.包资源管理
2.导航器
在Eclipse中.java文件放在src文件中,.class文件放在bin文件中
1.8.2、常见错误
类名必须和文件名相同。
void不可缺少(main函数中的)
java对大小写铭感,
在java中一个完整的语句都已“;”结束
在输出的字符串必须用引号引起来,而且必须是英文的引号。
总结
1、程序是为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合
2、Java包括编程语言和相关的大量技术
3、Java主要用于开发两类程序,桌面应用程序和internet应用程序,
4、开发一个Java应用程序的基本步骤是,编写源代码,编译程序和运行程序,源程序以.java为后缀名,编译后生成的文件以.class为后缀名,使用javac命令可以编译.java文件,使用java命令可以运行编译后 生成的.class文件。
5、编写Java程序要符合Java程序规范,为程序编写注释大大增加了程序的可读性,
6、Eclipse是一个功能强大的集成开发环境,他的各种窗口便于Java程序的开发,调试和管理。
八大基本类型
Byte
sort
Int
Long
Float
Double
Char
Boolean |
|
api |
需要用new 关键字创建的对象都是应用类型
.java 通过JVM虚拟机编译
第二章 变量、数据类型和运算符
2011年11月14日
11:44
2.1 变量
我们根据内存地址可以找到内存空间的位置,也就找到存储的数据了。但是内存地址非常不好记,因此我们给这块内存空间起一个别名,通过使用别名找到对应的存储数据。变量是一个数据存空间的表示。
通过变量名可以简单快速的找到它存储的数据,将数据指定给变量,就是将数据存储到别名为变量名的那个房间,调用变量,就是将那个房间中的数据取出来使用,可见,变量是存储数据的一个基本单元,不同的变量相互独立。
2.2、数据类型
2.2.1不同的数据类型
2.2.2、java常用数据类型
常用Java数据类型
Int |
整形 |
用于存储整形,比如学员人数, |
Double |
双精度浮点型 |
用于存储带有小数的数字,比如商品的价格 |
Char |
字符型 |
用于存储大哥字符,比如男,女 |
String |
字符串型 |
用于存储一串字符 |
不同的数据类型在存储时所需要的空间名不相同,所以需要用不同的内存空间来存储,其中数据类型就是java定义的关键字
2.3、变量声明及使用
1、声明变量,即“根据数据类型在内存中申请一块空地”,这里需要给变量起名字;
声明变量的语法
数据类型 变量名;
其中数据类型可以是java定义的任意一种数据类型
2、给变量赋值,
语法
变量名 = 值;
语法二
数据类型 变量名 = 值;
3、调用变量
使用存储的变量我们称之为“变量调用”
变量都必须声明和赋值后才能使用 因此要想使用一个变量,变量的声明和赋值必不可少。
2.3.1、变量命名规则
1 |
变量必须一字母,下划线“_”或“$”符号开头 |
2 |
变量可以包括数字,但不能以数字开头 |
3 |
除了“_”,"$"符号以外,变量名不能包含任何特殊字符 |
4 |
不能使用java语言的关键字,比如int ,class,public 等等 |
Java中变量命名以骆驼命名法
2.3.2、常见错误
1、变量未赋值先使用,
2、使用非法的变量名
3、变量不能重名
2.4、运算符
2.4.1、赋值运算符
“=”为赋值运算符。
“=”可以将某个数值赋给变量,或时将某个表达式的值赋给变量,表达式就是符号(如加号,减号)与操作数(如b,3等)的组合,
2.4.2、算术运算符
在java中提供运算功能的就是算术运算符,他使用数值操作数进行数学计算。
常用算术运算符
+ 加法 |
|
*乘法 |
/ 除法 |
%取余 |
2.5、数据类型转换
Java中通过键盘得到输入数据的方法
在类前先导入工具包语句为:
Import java.util.*;
mian()方法中的语句
//创建Scanner对象
Scanner input = new Scanner(System.in);
Int st = input.nextInt();
自加运算符(++)和自减运算符--
整形变量名后跟上自加自减运算符值变量自加1或者自减1
2.5.1、为什么需要数据类型转换
2.5.2、如何进行数据类型转换
规则1:如果一个操作数为double型,则整个表达式可提升为double型
规则2:满足自动类型转换的条件,
两种类型要兼容:数值类型(整形和浮点型)互相兼容
目标类型大于源类型:double型可以存放int型数据,因为double型变量分配的空间足够存储int型变量,因此,我们也把int变量转换成double型变量形象的称谓“放大转换”
强制数据类型转换
语法
(数据类型)表达式
在变量前加上括号,括号总得类型就是你要强制转换成的类型。
总结
1、变量是一个数据存储空间的表示,他是存储数据的基本单元
2、Java中常用的数据类型有整形(int),双精度浮点型(double),字符型(char)和字符串型(String)
3、变量要先声明并赋值,然后才能使用
4、Java提供各种类型的运算符,
赋值运算符(=)
算术运算符(+,-,*,/,%)
5.数据类型转换是为了方便不同类型的数据之间进行运算
6、数据类型转换包括自动类型转换盒强制类型转换,发生自动类型转换必须符合一定的条件。
7、Java提供Scanner类可以实现从控制台获取键盘输入的信息。
单词
Double |
|
|
双的 |
String |
|
|
一串,一系列,字符串 |
Character |
|
|
字符 |
Integer |
|
|
整形 |
Scanner |
|
|
检测装置 |
Score |
|
|
得分 |
Name |
|
|
姓名 |
第三章 运算符和基本选择结构
3.1、boolean类型
3.1.1、为什么需要boolean类型
在程序中需要使用到判断真假。在Java中使用boolean变量来存储真假。
3.1.2、什么是boolean类型
boolean只用两个值 true 和false;
3.1.3、如何使用boolean类型
boolean值的使用;定义boolean类型的变量用来保存boolean类型的值
3.2、关系运算符
3.2.1、为什么使用关系运算符
使用关系运算符来判断真和假….实现逻辑判断
3.2.2、什么是关系运算符
> |
大于 |
< |
小于 |
>= |
大于等于 |
<= |
小于等于 |
== |
等于 |
!= |
不等于 |
关系运算符是用来做比较运算,而比较的结果是一个boolean类型的值,要么是真(true)要嘛是假(false)
3.3、if选择结构
3.3.1、为什么需要if选择结构
3.3.2、什么是if选择结构
if选择结构是根据条件判断后在做处理的一种语法。
语法
If(条件){
代码块
}
if后面小括号的的条件必须是一个布尔表达式,即表达式的值必须为布尔值true或false.
当if关键字后面的一对大括号里只有一句语句时,可以省略大括号。
3.3.3、如何使用if选择结构
流程图
计算步骤,处理符号
输入/输出指令
圆角矩形 |
|
程序的开始或结束 |
逻辑运算符
&& |
与。并且 |
条件1 &&条件2 |
|| |
或,或者 |
条件1||条件2 |
! |
非 |
!条件 |
3使用if-else
语法
If(条件){
代码块1
}else{
代码块2
}
总结
1、java中使用boolean类型表示真假,boolean类型的两个值为ture和false;
2、Java中使用关系运算符可以用来比较大小,高低,多少等,比较的结果是boolean类型
3、Java中的if选择结构,包括以下形式
if选择结构:可以处理单一或组合条件的情况
If-else选择结构,可以处理简单的条件分支情况。
单词
Boolean |
|
|
真,假,布尔 |
True |
|
|
真 |
False |
|
|
假 |
If |
|
|
如果 |
Else |
|
|
否则,另外,其他 |
判断和分支
连接符
流程线
第四章 复杂选择结构
2011年11月14日
17:00
单词
Case |
|
|
情况,实例 |
Default |
|
|
默认 |
switch |
|
|
转换,开关 |
Break |
|
|
休息,打破,突变 |
match |
|
|
使相配,相配 |
assess |
|
|
评定,评价 |
4.2、多重if选择结构
多重if选择结构的语法
If(boolean){
代码块;
}else if(boolean){
代码块;
}else{
代码块;
}
其中else if块可以有多个或没有,需要几个else if完全取决于你的需要
Else块最多有一个或没有,else块必须要放在else if块之后
4.3、嵌套if选择结构
语法
If(条件){
If(条件){
代码块1
}else{
代码块2
}
}else{
代码快3
}
只有当满足外层if的条件是,才会判断内层if的条件
else总是与它前面最近的那个缺少esle的if配对
4.5、switch选择结构
4.5.1、为什么使用switch选择结构
当出现等值判断时就可以考虑Switch判断
4.5.2、什么是switch选择结构
语法
switch(){
case 常量1:
代码块1;
break;
case 常量2:
代码块2;
break;
default:
}
解释:
先计算switch后面小括号里的整形变量的值,然后将计算结果顺序跟每个case后的常量比较,当遇到二者相等的时候,执行这个case块中的代码,遇到break时就跳出switch选择结构,执行switch选择结构之后的代码。如果没有任何一个case后的常量跟小括号中的值相等,则执行switch末尾部分的default块中的代码;
4.5.3、如何使用switch选择结构
switch选择结构的条件只能是等值的判断,而且只能是整形或字符型的等值判断,也就是说,switch选择结构只能判断一个整型变量是否等于某个整数值的情况或是一个字符型变量是否等于字符的情况,并且每一个case后面的值都是不同,而多重if选择结构既可以判断条件是等值的情况,也可以判断条件区间的情况;
经验:
每个case后的代码块可以有多个语句,也就是说可以有一组语句,而且不需要用“{ }”括起来,case和default后都有一个冒号,不要忘记了;否则编译不通过。对于每个case的结尾,都要想一想是否需要从这里跳出整个switch选择结构。如果需要,一定不要忘记写一个语句,那就是“break”;
4.6、处理系统异常
//Scanner对象判断输入数据的方法
Scanner input = new Scanner(System.in);
Input.hasNextInt()//判断输入的是否是整型数据、返回一个boolean值
总结
java中if选择结构,包括以下形式。
1.基本if选择结构,可以处理单一或组合条件的情况。
2.if-else选择结构,可以处理简单的条件分支情况;
3.多重if选择结构,可以处理复杂的条件分支情况。
在条件判断是等值判断的情况下,可以使用switch选择结构代替多重if选择结构。在使用switch选择结构时不要忘记每个case的最后写上break语句;
为了增加程序的健壮性,可以再程序中主动判断,并给出用户友好的提示;
产生随机数的方法
Math.random() * 10
这是0-10之间的随机数
第五章 循环结构(一)
5.1、循环结构
5.1.1、为什么需要循环?
5.1.2、什么是循环
反复的重复做一件事情
循环不是无休止的进行的,满足一定条件的时候循环才会继续,这个条件成为“循环条件”,x循环条件不满足的时候,循环退出。其次,循环结构时反复进行相同的或类似的一系列操作,这个操作称为“循环操作”
5.2、while循环
5.2.1、什么是while循环
在java程序中的循环结构有三种实现方式:while循环,do-while循环和for循环,(还有一种面向对象的for in循环(for(object a in 集合){}))
while循环语法
while(循环条件{
循环操作
}
流程图
关键字while后的小括号中的内容是循环条件,循环条件是一个布尔表达式,他的值为布尔值“真”或“假”,{ }中的语句统称为循环操作,又称为循环体。
while循环的执行顺序如下。
判断循环条件是否满足。如果满足则执行循环操作,否则退出循环体,执行完循环操作后,回来再次判断循环条件,决定继续执行循环或退出循环。
while循环的一个特点是:先判断。后执行;
5.2.2、如何使用while循环
判断两个字符串类型的数据是否相等:
String1.equals(String2);
使用while循环解决问题时,一定要注意检查循环能否退出,即避免出现“死循环”。
5.3、程序调试
5.3.1、为什么需要程序调试
5.3.2、什么是程序调试
程序调试:
满足我们暂停程序,观察变量和逐条执行语句等功能的工具和方法总称为程序调试。
5.3.3、如何进行循环调试
1.分析错误,设置断点
断点用来在调试的时候方便程序停在某一处,以便发现程序错误。
设置断点,在想设置断点的代码左侧边栏处双击,就会出现一个圆形的断点标记。再次双击就取消。
2.启动调试,单步执行。
在调试试图中,按F5或F6都是单步执行,
F5 :单步跳入
F6: 单步跳过
5.5、do-while循环
5.5.1、为什么需要do-while循环
因为有时我们需要无论如何都要先执行一次循环操作,在判断循环条件,决定是否继续执行,
5.5.2、什么是do-while循环
do{
循环操作
}while(循环条件);
do-while的特点是先执行,在判断,
5.5.3、如何使用do-while循环
对比
while和do-while的异同点
相同点:都是循环结构,使用:“while(循环条件)”表示循环条件,使用大括号将循环操作括起来;
不同点:
1 、语法不同。与while循环相比,do-while循环将while关键字和循环条件放在后面,而且前面多了do关键字,后面多了一个分号;
2、执行次序不同,while循环先判断,在执行,do-While循环先执行,在判断。
3、一开始循环条件就不满足的情况下。while循环一次都不会执行,do-while循环则不管什么情况都至少执行一次
总结
循环结构由循环条件和循环操作组成,只要满足循环条件,循环操作就会反复执行。
使用循环解决问题的步骤,分析循环条件和循环操作,套用循环的语法写出代码,检查循环能否退出。
编写循环结构代码时需要注意,循环变量的初值,循环操作中对循环变量值的改变和循环条件三者间的关系,确保循环次数正确,不要出现“死循环”;
while循环的贴点是先判断,后执行,do-while循环的特点是先执行,在判断。
程序调试时满足我们暂停程序,观察变量和逐条执行语句等功能的工具和方法的总称。主要方法包括设置断点,单步运行和观察变量。
单词
while |
|
|
当……的时候;一会儿 |
do |
|
|
做,完成, 进行 |
index |
|
|
索引,指数 |
bug |
|
|
臭虫,小虫;烦扰,打扰; |
debug |
|
|
除错,调试 |
equal |
|
|
相等的,等于 |
step |
|
|
步,脚步 |
error |
|
|
错误,误差; |
假
循环条件
真
循环操作
设置好断点后,单击
按钮,启动调试
第六章 循环结构二
单词
rate |
|
|
加个,比率 |
young |
|
|
年轻的,初期的 |
schedule |
|
|
安排,计划 |
negative |
['neɡətiv] |
|
消极的,否定的,负数 |
customer |
|
|
顾客 |
birthday |
|
|
生日 |
point |
|
|
标点,得分 |
continue |
|
|
仍旧,连续 |
return |
|
|
返回 |
6.1.for循环
6.1.1、为什么需要for循环
在解决有固定循环次数的问题时,就可以首选for循环结构。
6.1.2、什么是for循环
循环的四个部分
1、初始部分,设置循环的初始状态
2、循环体,重复执行的代码。
3、迭代部分,下一次循环开始前要执行的部分,在while循环中它作为循环体的一部分
4、循环条件,判断是否继续循环的条件,
for循环的基本语法
for(表达式1;表达式2;表达式3){
//循环体
}
for循环是关键字
表达式 |
形式 |
功能 |
举例 |
表达式1 |
赋值语句 |
循环结构的初始部分,为循环变量赋初值。 |
int i = 0; |
表达式2 |
条件语句 |
循环结构的循环条件 |
i < 100 |
表达式3 |
赋值语句,通常采用++或-- |
循环结构的迭代部分,通常用来修改循环变量的值。 |
i++ |
for关键字后面括号中的三个表达式必须用“;”隔开
执行顺序
1、执行初始部分(int i = 0 ;);
2、进行循环条件的判断(i<100);
3、根据循环条件判断结构;
如果为true,执行循环体
如果为false,退出循环,步骤4,5,均不执行
4,执行迭代部分,改变循环变量值(i++);
5,依次重复2,3,4,直到退出for循环结构。
6.1.3、如何使用for循环。
注意缺少三个表达式的for循环形式。
for(;i<100;i++){
//循环体
}
6.2、跳转语句
java支持三种形式的跳转,break(停止),continue(继续)和return(返回)。
6.2.1、break语句的使用
break语句用于终止某个循环,使程序跳到循环块的下一条语句,在循环中位于break后的语句将不再执行,循环也停止执行。
break通常和if条件语句一起使用;
break还可以使用在switch当中;
6.2.2、continue语句的使用
continue可以用于for循环,也可以用于do-while和while循环,在for循环中,continue使程序先跳转到迭代部分(i++)然后判断循环条件,如果为true,继续下一次循环,否则终止循环,在while循环中,continue执行完毕后,程序将直接判断循环条件,continue只能用在循环结构中
break是终止某个循环,,程序跳转到循环块呃下一条语句
continue语句是跳出本次循环,进入下一次循环。
6.3、循环结构的总结
java当中主要的三种循环,while,do-while, for循环结构,无论哪一种循环结构,都有四个必不可少的部分,初始部分,循环条件,循环体,迭代部分,缺少了任何一二都可能造成严重的错误;
三种循环结构的语法
while
while(条件){
//循环体
}
do-while
do{
//循环体
}while(条件);
for
for(int i = 0; i < 100; i++){
//循环体
}
执行顺序的不同
while循环:先执行条件判断,在执行循环体,如果条件不成立,退出循环
do-while循环:先执行循环体,在进行条件判断,循环体至少执行一次。
for循环:先执行初始化步分,在进行条件判断,然后执行循环体,最后进行迭代部分的计算,如果条件不成立,跳出循环。
使用情况不同。
在解决问题时,对于循环次数确定的情况,通常选用for循环,对于循环次数不确定的情况,通常选用while和do-while循环;
总结
for循环的语法
for(参数初始化;条件判断;参数值改变){
//循环体
}
循环体中,可以使用break和continue语句控制程序的流程
break语句是终止某个循环,程序跳转到循环块外的下一条语句;
continue语句是跳出本次循环,进入下一次循环;
第七章 数组
单词
array |
|
|
数组;排列 |
length |
|
|
长度 |
exception |
|
|
列外;异议 |
sort |
|
|
分类:将…...排序 |
type |
|
|
种类;类型。打字 |
primitive |
|
|
原始的,简单的 |
reference |
|
|
参考;引用 |
info |
|
|
情报;信息 |
7.1、数组概述
7.1.1、为什么需要数组
7.1.2、java中的数组
//简述
在java中,数组就是一个变量,用于将相同数据类型的数据存储在存储单元中,数组中的每一个元素都属于同一数据类型。
1、在计算机中,数组变量也要有一个名称,成为标识符,用于区分不同的数组;
2、当我们给出数组名称,即数组标识符后,要向数组中存放数据,这些数据就称为数组元素。
3、在数组中,为了正确的得到数组的元素,也需要对它们编号,这样计算机才能根据
编号去存取,这个编号就称为元素下标。
//概要
数组只能有一个名称,即标识符
数组元素在数组里顺序排列编号,该编号即为元素下标,它标明了元素在数组中的位置,首元素的编号规定为0,依次递增。
数组中的每个元素都可以通过下标来访问。
数组的大小(长度)是数组可容纳元素的最大数量,定义一个数组的同时也定义了他的大小,如果数组已满但是还继续向数组中存储数据的话,程序就会出错,着称为数组越界。
7.2、如何使用数组
7.2.1、使用数组的步骤
1、声明数组,语法:
数据类型[] 数组名;
或者
数据类型 数组名[];
数组名可以使任意合法的变量名;
2、分配空间
在声明了数组之后,还要为数组分配内存空间,这样数组的每一个元素才有一个空间进行存储。在java中可以使用new关键字来给数组分配空间;
语法:
数组名 = new 数据类型[数组长度];
其中数组长度就是数组中能存放的元素个数;
语法:
数据类型 [] 数组名 = new 数组类型[数组长度];
3、赋值
数组中的每一个元素都是可以通过下标来访问,语法:
数组名[下标值];
在编写程序时,数组和循环往往结合在一起使用,可以大大简化代码,提高程序效率。
语法:
数据类型 [] 数组名 = {值1,值2,...值n};
使用 数组名.length 获取数组的长度;
7.2.2、常见错误
数组的下标是从0开始;需要注意;
数组访问越界;
7.3、数组应用
7.3.1、数组排序
Array.sort(数组名); //排序后为升
7.3.3、求数组最大值
7.4、深入理解数据类型
7.4.1、基本数据类型
基本数据类型,不同的变量会分配不同的存储空间,并且存储空间中存储的是该变量的值。赋值操作传递的是变量的值,改变一个变量的值不会影响另一个变量的值。
7.4.2、引用数据类型
数组,字符串类型(String)在java中属于引用数据类型。
引用数组类型,赋值是把原对象的引用传递给另一个引用,对数组而言,当一个数组引用赋值给另一个数组引用后,这两个引用只想同一个数组,也就是指向同一块内存空间。
在Java中数组是对象,数组标识符只是一个引用,他指向内存中创建的一个真实的数组对象。
在java中定义数组之后,若没有指定初始值,则依数据类型的不同,会给数组元素 赋予一个默认值。
int |
|
0 |
double |
|
0.0 |
char |
|
'\u0000' |
boolean |
|
false |
总结
数组是可以再内存中连续存储多个元素的结构,数组中的所有元素必须属于相同的数据类型。
数组中的元素通过数组的下标进行访问,数组的下标从0开始;
一维数组可用一个循环动态初始化,或者用一个循环动态输出数组中的元素信息。
利用Array类提供的sort()方法可以方便的对数组中的元素进行排序。
int.double,char,boolean类型是基本数据类型
String和数组是引用数据类型。
第九章 循环结构进阶
9.1、插入算法
9.1.1、向数组中插入元素
String1.compareToIgnoreCase(String2)
该方法是按字典顺序比较两个字符串的,并且忽略大小写,如果String1大于String2那么返回一个正数,如果String1小于String2,那么返回一个负数,如果相等,返回0;
9.2、二重循环结构
9.2.3、什么是二重循环
概述:
二重循环就是一个循环结构内又包含一个完整的循环结构。
语法:
//while和while循环嵌套;
while(循环条件1){
循环操作1;
while(循环条件2){
循环操作2;
}
}
do-while和do-while循环嵌套;
do{
循环操作1
do{
循环操作2
}while(循环条件2);
}while(循环条件1);
for和for循环嵌套
for(循环条件1){
循环操作1;
for(循环条件2){
循环操作2;
}
}
while和for循环嵌套
while(循环条件1){
循环操作1;
for(循环条件2){
循环操作2;
}
}
循环条件1和循环操作1对应的循环称为外层循环,循环条件1,和循环操作2对应的循环称为内层循环,内层循环结束后哦才执行外层循环的语句,在二重循环中,外层循环变量变化一次,内层循环变量变换一次;
9.2.4、如何使用二重循环
在使用二重循环打印图形时,,使用外层循环控制行,使用内层循环控制列;
9.4.跳转语句进阶
9.4.1、在二重循环中使用continue
9.4.2、在二重循环中使用break
9.4.3、二重循环中continue和break的对别
continue和break只对最近的循环结构起作用;
9.4.4、二重循环的综合应用
使用二重循环打印九九乘法表。
总结
单词
insert |
|
|
插入,嵌入 |
island |
|
|
岛,孤立 |
compare |
|
|
比较,对照 |
ignore |
|
|
忽视 |
triangle |
|
|
三角形 |
invert |
|
|
使….前后倒置,转化的 |
diamond |
|
|
菱形,金刚钻 |
password |
|
|
密码,口令 |
第十章 类和对象
2012年1月1日
15:21
10.1、对象
Alan Kay因为设计了世界上第一个面向对象语言Smalltalk而获得了图灵奖,java之父James Gosling结合Internet背景设计了完全面向的对象的java语言。、
现实世界中客观存在的事物就称为对象,在java的世界中“万物皆对象”;
10.1.1、身边的对象
java是一种面向对象的语言,因此我们要学会用面向对象的思想考虑问题和编写程序。
在面向对象中,对象是用来描述客观事物的一个实体。
对象都有自己的特征,包括静态特征和动态特征。静态特征是可以用某些数据来描述的特征。动态特征是对象所表现的行为或对象所具有的功能。
10.1.2、对象的属性和方法
在面向对象的编程思想中,我们把对象的静态特征和动态特征分别称为对象的属性和方法,他们是构成对象的主要因素,其中属性是用来描述对象静态特征的一个数据项,而方法是用来描述对象动态特征的一个动作序列。
对象的概述:
对象:用来描述客观事物的一个实体,由一组属性和方法构成;
10.1.3、封装
概述:
把一个事物包装起来,并尽可能隐藏内部细节,这就叫做封装(encapsulation)
对象的属性和方法是相辅相成,不可分割的,他们共同组成了实体对象,因此,对象具有封装性;
10.2、类
概述:
类:具有相同属性和方法的一组对象的集合;
类定义了对象将会拥有的特征(属性)和行为(方法);
类的属性:对象所拥有的静态特征在类中表示时称为类的属性
类的方法:对象执行的操作称为类的方法。
10.2.1、类和对象的关系
一个类为他的全部对象给出了一个统一的定义,而它的每个对象则是符合这种定义的一个实体。因此类和对象的关系就是抽象(类是抽象的)和具体(每个实体都是具体存在的)的关系。类是多个对象进行综合抽象 的结果,是实体对象的概念模型,而一个对象是一个类的实例;
10.2.2、类是对象的类型
定义类就是自定义了一个自己的数据类型;
10.3、java是面向对象的语言
在面向对象的编程中,类是程序的基本单元,java是完全面向对象的语言,所有程序都是以类为组织单元的。
10.3.1、java的类模板
语法:
public class <类名>{
//定义属性部分
属性1的类型 属性1;
属性2的类型 属性2;
…..
属性n的类型 属性n;
//定义方法部分
方法1;
方法2;
…..
方法n;
}
在java中要创建一个类,需要使用一个关键字,一个类名和一个表示程序体的大括号。
其中class是创建类的关键字。在class的后面要给定义的类命名,然后写上一对大括号,类的主体部分就是写在{ }中
类名命名规则
1、不能使用java的关键字。
2、不能包含任何嵌入的空格或点号“.”以及除下划线“-”“$”字符外的特殊字符;
3、不能以数字开头
10.3.2、如何定义类
1、定义类名
语法:
public class 类名{
//程序体
}
2、编写类的属性
通过在类的主体中定义变量来描述类所具有的静态特征(属性),这些变量称为类的成员变量;
3、编写方法;
通过在类中定义方法来描述类所具有的行为,这些方法称为类的成员方法。
方法的基本结构;
访问修饰符 返回值类型 方法名(){
方法体
}
访问修饰符限制了访问该方法的范围,返回类型是方法执行后返回结果的类型,当我没有返回值时使用void来描述,方法名使用一个有意义的名字描述该方法的左右,其命名应符合标识符的命名规范;
10.3.3、如何创建和使用对象
类的作用就是创建对象。由类生成对象,称为类的实例化过程。一个实例就是一个对象,一个类可以生成多个对象。
语法:
类名 对象名 = new 类名();
在java中,要引用对象的属性和方法,需要使用“.”操作法,其中对象名在原点的左边,属性或方法的名称在圆点的右边。
语法:
对象名.属性名 //引用对象属性
对象名.方法名(); //引用对象方法
10.3.4、综合示例
描述爱好,我自我介绍
10.3.5、面向对象的有点
1、与人类的思维习惯一致
2、信息隐藏,提高了程序的课维护性和安全性。
3、提高程序的课重用性;
p223
10.4、数据类型总结
java中的数据分为两类
基本数据类型:int,double;char;boolean;
引用数据类型:String,和我们自定义的类型;
总结
1、对象是用来描述客观事物的一个实体,由一组属性和方法构成;
2、类是具有相同属性和方法的一组对象的集合;
3、类和对象的关系是抽象和具体的关系,类是对象的集合,对象是类的实例。
4、对象的属性和方法被共同封装在类中,相辅相成,不可分割;
5、面向对象程序设计的有点如下;
与人类的思维习惯一致;
隐藏信息,提高了程序的可维护性和安全性;
提高了程序的可重用性;
6、使用类的步骤如下:
定义类,使用关键字class;
创建类的对象,使用关键字new;
使用类的属性和方法,使用点操作符“.”;
7、在java中的数据类型分为两类;基本数据类型和引用数据类型。
单词
class |
|
|
种类,分类,班级 |
object |
|
|
目标,反对, |
OOP |
|
|
面向对象 |
return |
|
|
返回 |
encapsulation |
[in,-kæpsə'leiʃən] |
|
封装,包装 |
null |
|
|
空 |
initial |
|
|
最初的,自首的 |
type |
|
|
类型品种 |
第十一章 类的无参方法
11.1、类的方法概述
11.1.1、什么是类的方法
每个类的每个方法都定义了一个功能;
类的方法定义了类的某种行为(功能),而且方法的具体实现封装在类中,实现了信息隐藏。
11.1.2、如何定义类的方法
方法的三要素1.方法名,2.方法的返回值,3.方法的主体
语法:
public 返回值类型 方法名(){
//方法主体;
}
通常编写方法时,分两部分完成
1、定义方法名和返回值;
2、在{ }中编写方法的主体部分
编写方法时需要注意:
1、方法体放在一对大括号中。方法体就是一段程序代码,完成一定的工作。
2、方法名主要在调用这个方法时使用,在java中一般采用骆驼命名法;
3、方法执行和可能会返回一个结果,该结果的类型称为返回值类型,使用return语句返回值:
语法:
return 表达式;
return是跳转语句的一种,他主要做两件事;
1.跳出方法:意思是“我已经完成了要离开这个方法”;
2、给出一个结果:如果方法产生一个值,这个值放在return后面,即<表达式>部分;意思是:“离开方法,并将<表达式>的值返回给调用它的程序;”;
11.1.3、方法调用
在程序中通过使用方法名称从而执行方法中包含的语句,这一过程就称为方法调用;
语法:
对象.方法名();
在java中类是程序的基本单元,每个对象需要完成特定的应用程序功能,当需要某一对象执行一项特定操作时,通过调用该对象的方法来实现,另外,在类中,类的不同成员方法之间也可以进行相互调用,
在同一类中的方法,直接通过方法名来调用;
不同类的方法,首先创建对象,在使用“对象.方法名”来调用;
11.1.4、常见错误
1、方法返回类型为void,方法中不能使用return返回值;
2、方法不能返回多个值;
3、多个方法不能相互嵌套;
4、不能再方法外部直接写程序逻辑;
11.2、变量的作用域
11.2.1、成员变量和局部变量
成员变量:自定义类的方法可以直接使用该类定义的成员变量,如果别的类要访问它,必须首先创建该类的对象,然后才能通过点运算符来引用;
局部变量:它的作用域仅仅在定义该变量的方法内,因此只用在这个方法中能够使用它
使用成员变量和局部变量需要注意以下几个点内容
1、作用域不同
局部变量的作用域仅限于定义它的方法,在该方法外无法访问它,成员变量的作用域在整个类内部是可见的。所有成员方法都可以使用它,如果访问权限允许还可以在类外部使用成员变量。
2、初始值不同;
对于成员变量,如果在类定义中没有给他赋予初始值,java会给他一个默认值,基本数据集类型的值为0;引用类型的值为null,但是java不会给局部变量赋予初始值,因此局部变量不许要定义赋值后在使用
3、在同一个方法中,不允许有同名的局部变量,在不同的方法中,可以有同名的局部变量。
11.2.2、常见错误
控制流语句语句中的局部变量
在循环中定义的变量在跳出循环结构后就不能再使用了。
11.3、面向对象的编程思想
11.3.1、如何使用面向对象思维
面向对象编程(Object Oriented Programming. OOP)是一种计算机编程架构,是上世纪九十年代才流行起来的一种软件编程思想,OOP的一条基本原则就是计算机是由单个能够起到子程序作用的单元或对象组和而成的,采用这种架构编程主要起到重用性,灵活性,和扩展性的强大作用,
OOP的好处:
类的方法可以实现某个特定的功能,别的类不需要知道它是如何实现的!知道实现此功能的方法和它的方法名,就可以直接调用了,不用重复编码;
11.4、javaDoc注释
程序时程序员的创作作品,它应该具有可读性,相对持久性和可维护性。重要的人是自己的程序能让其他程序员读懂并且修改。在许多大型软件公司,编程人员编写的注释量甚至超过代码量。
11.4.1、什么事javaDoc注释
javaDoc是sun公司提供的一种技术,它能够从程序源代码中抽取类,方法,成员等的注释,形成一个和源代码配套的API帮助文档(简单的说,就是介绍该类,类的方法和成员变量的文档)
javaDOc的语法
以/**开头 以 */结尾。
每个注释包含一些描述性的文本和若干个javaDoc标签。
javaDoc标签一般以@为前缀,常用的javaDoc标签见表11-1;
标签 |
含义 |
@autor |
作者名 |
@parameter |
参数及其含义 |
@return |
返回值 |
@version |
版本标示 |
@since |
最早使用该方法/类/借口的jdk版本 |
@throws |
异常及抛出条件 |
11.4.2、如何生成javaDoc文档
p252;
总结
定义类的方法不许包括以下三个部分;
1、方法的名称
2、方法返回值的类型
3、方法的主体
类的方法调用
统一类中的方法,直接使用方法名调用该方法
不同类的方法,首相创建类的实例,在使用“对象.方法名”来调用;
在java中,有成员变量和局部变量,他们的作用域各不相同。
javaDoc注释一/**开头,以*/结尾 ,并且提供了javadoc注释标签,使用javaDoc技术可以生成开发文档;
单词
document |
|
|
文档 |
display |
|
|
显示,陈列 |
method |
|
|
方法;条例,类函数 |
version |
|
|
版本,译文 |
orient |
|
|
确定方向, |
parameter |
[pə'ræmitə] |
|
参数,数量,系数 |
since |
|
|
自..以来,自….以后,既然,因为 |
第十三章 带参数的方法(一)
单词
Search |
|
|
搜索,探求 |
Triangle |
|
|
三角形 |
Practice |
|
|
练习 |
loan |
|
|
货款,借出 |
shape |
|
|
形状,形成 |
operator |
|
|
操作员 |
protect |
|
|
保护,防卫 |
private |
|
|
是人的,私有的 |
13.1、带参方法
13.1.1、如何定义带参方法
方法中某种功能的实现依赖于我们给它的作用体,这时候在定义方法时就需要在括号中加入参数列表。
语法:
<访问修饰符> 返回类型 <方法名>(<参数列表>){
//方法体
}
访问修饰符:指该方法允许别访问调用的权限范围;其值只能是,public ,protected 或private。
返回类型指方法返回值的类型,如果方法不返回任何值,它应该声明为void类型。java中对待返回值的要求很严格,方法返回值必须与所说明的类型相匹配,使用return关键字返回值。
<方法名>是定义方法的名字,他必须使用合法的标识符;
<参数列表>是传送给方法的参数列表,列表中个参数见以逗号分隔,每个参数由一个类型和一个标识符名组成。
13.1.2、带参方法的调用
调用带参方法和调用无参方法的语法相同,但是在调用带参方法时必须传入实际的参数的值。
定义方法和调用方法时,我们把参数分别称为形式参数和实际参数,简称形参和实参,形参是在定义方法的时候对参数的称呼,目的是用来定义方法需要传入的参数个数和类型,实参是在调用方法是传递给方法处理的实际的值。
调用方法时需要注意
先实例化对象,再调用使用方法。
实参的类型,数量,顺序都要与形参一一对应。
13.2、带有多个参数的方法
13.2.1、带两个参数的方法
实际操纵
13.2.2、带多个参数的方法
带参方法的参数个数无论多少,子啊使用时只要注意实参和形参一一对应,传递的实际参数值的数据类型与形参相同,个数相同,顺序一致,就掌握了带参方法的使用。
13.2.3、常见错误
在调用方法时不能在传递实参时加上数据类型
形参和实参的数据类型必须一致;
形参和实参的个数必须相同,
13.3、包
13.3.1、为什么需要包
包的作用:
1、包允许将类组合成较小的单元(类似文件夹),易于找到和使用相应的类文件。
2、防止命名冲突
3、包允许在更广的范围内保护类,数据和方法,可以再包内定义类,根据规则,包外的代码有可能不能访问该类。
13.3.2、如何创建包
要创建包(package)只要包含一个package命令作为一个java源文件的第一条语句就可以了。
语法:
package 包名;
package是关键字,包的声明必须是java源文件中的第一条非注释性语句,而且一个源文件只能有一个包声明语句。
包名规范:
java包的名字通常由小写字母组成,不能以圆点开头或结尾。
一个唯一包名的前缀通常是全部小写的ASCII字母,并且是一个顶级域名com,edu,gov,net,org,
包名的后续部分依不同机构各自内部的规范不同而不同;
13.3.3、使用eclipse创建包
13.3.4、包和目录的关系
13.3.5、如何导入包
在java中,使用关键字import告知编译器所需要使用的类位于哪一个包中,这个过程称为导入包。
语法:
import 包名.类名
13.3.6、练习
总结
带参方法定义的一般形式如下。
<访问修饰符> 返回类型 <方法名>(<参数列表>){
//方法体
}
调用带参方法与调用无参方法的语法是相同的,但是在调用带参方法时必须传入实际的参数的值
形参是在定义方法的时候对参数的称呼,实参是在调用方法是传递给方法的实际的值。
java中提供包来管理类,创建包使用关键字 package导入包使用关键字import。
第十四章 带参数的方法(二)
2012年1月1日
15:35
14.1、引用类型作为参数
java中基本类型分为四类:即整形,浮点型,字符型和布尔型
14.1.1、数组类型的方法返回值
14.1.2、对象类型的参数
java允许像传递其他类型的参数那样,将对象以参数的形式传递给对方;
对象属于引用类型,引用类型所传递的值为该对象的地址,当把一个对象作为参数传递给方法时,其实是把对象的地址传递给了该方法的参数。
将对象作为参数传递实际上提现了面向对象的设计理念,它吧相关的数据通过这种方式进行了很好的封装,这样数据可以很容易的被传递,并且对数据的整体操作也很方便。
14.1.3、对象数组类型的参数
实际练习
总结
java把数据分为两大类
基本数据类型,
引用数据类型。
对于方法返回的数据类型开始用引用类型和使用基本数据类型是一样的,只要记住方法体内return的返回类型与方法定义的返回类型一致就可以了。
对象属于引用数据类型,引用数据类型所传递的值为该对象的地址,当把一个对象作为参数传递给对方时,其实是把对象的地址传递给了该方法的参数。
使用对象数组作为参数,只是将对象作为一个数组元素,其引用方法与基本数据类型的数组完全相同,但针对对象数组中的单个元素来讲,它又具有对象的属性和方法。
单词
height |
|
|
高度 |
customer |
|
|
顾客 |
manage |
|
|
管理 |
search |
|
|
搜索 |
upper |
|
|
上面的 |
case |
|
|
情况,实例 |
第十五章 字符串
15.1、字符串概述
字符串是一系列字符组成的序列。
15.1.1、如何使用字符串
定义并初始化字符串
使用字符串,对字符串进行一些处理
String类是java设计人员预先提供的一个非常有用的类,它位于java.lang包中,默认情况下,该包被自动导入所有的程序。
创建字符串的语法
String str = new String();
String str1 = "Hello World";
String str2 = new String("Hello World");
15.1.2、字符串的长度
语法:
字符串1.length(); //获取字符串的长度。
15.1.3、字符串的比较
语法:
字符串1.equals(字符串2);
使用equals()方法比较两个字符串时,它逐个对照组成两个字符串的每个字符是否相同。如果都相同返回真..否则返回假。对于字符的大小写,也在检查范围内。
在java中 ,双等号 “==”和equals()方法虽然都应用于两个字符串,但是 “==”判断的是两个字符串对象在内存中的首地址,就是判断是否是同一个字符串对象,而equals()判断的是两个字符串兑现的值。
使用 equalsIgnoreCase()方法忽略大小写判断两个字符串是否相等。
toLowerCase();转换字符串中的英文字符为小写,
toUpperCase();转换字符串中的英文字符为大写;
15.2、复杂的字符串处理
15.2.1、字符串的链接
在使用 “+”号连接int double数据时,将自动把int double等转换为字符串类型。
使用concat方法将一个字符串连接到另一个字符串的末尾。语法
String1.concate(字符串2);
字符串2被连接到字符串1的末尾返回连接后的新字符串。
String具有不可变性!!
15.2.2、字符串的提取和查询
1.indexOf()方法
该方法是在字符串内搜索某个指定的字符或字符串。返回出现第一个匹配的位置,如果没有找到匹配,则返回-1,
语法;
int index = 字符串.indexOf("字符串或字符");
2、lastIndexOf()方法
该方法也是在字符串内搜索某个指定的字符或字符串,但是他是搜索最后一个出现的字符(或字符串)的位置。
3、substring(int index)方法
该方法用于提取从位置索引开始的字符串部分,调用时括号中写的就是你想提取的字符串的开始位置,方法返回值就是要提取的字符串。
4、substring(int beginindex,int endindex)方法
该方法用于提取位置beginindex和位置endindex之间的字符串部分,这里需要注意的是左闭右开
5、trim()方法
该方法可以忽略字符串前后的空格。
15.2.3、字符串的拆分
split()方法,语法
字符串.split(String separator,int limit);
separator可选项,标识拆分字符串时使用一个或多个字符,如果不选该项,则返回包含该字符串所有单个字符的元素数组
limit可选项,该值用来限制返回数组中的元素个数。
15.3、StringBuffer类
15.3.1、如何使用StringBuffer类
声明StringBuffer
StringBuffer str1 = new StringBuffer();
StringBuffer提供了很多方法可供调用;
15.3.2、常用的StringBuffer类方法
StringBuffer.toStirng();
将StringBuffer转换成String类型,返回String类型的数据。
StringBuffer.append(参数);
将参数连接到字符串1后并返回;
字符串1.insert(位置,参数);
将参数插入到字符串1的指定位置(int 类型)后并返回。
类型的转换
基本类型的...类型
String.ValueOf(参数);
实际转换中使用Int。Double等自定义类型的内部方法实现类型间的相互转换
总结
定义一个字符串可以使用String 和StringBuffer类
String类提供了大量的操作字符串的方法的,常用的有
获得字符串的长度。length();
比较字符串:equals();
连接字符串:concat();
提取字符串:substring();
搜索字符串:indexOf()'
拆分字符串:split();
常用的StringBuffer类提供的方法有
转化成String类型:toString();
连接字符串:append();
插入字符串:insert()';
单词
equal |
|
|
与….相等 |
ignore |
|
|
忽视 |
lower |
|
|
下级的,降下 |
last |
|
|
末尾,最后一次 |
trim |
|
|
修剪,整齐的 |
concatenate |
|
|
连接,使连锁 |
buffer |
|
|
缓冲,缓冲器 |
final |
|
|
最终的,不可更改的 |