面向对象开发期末复习概述(二)

第2章 Java基础语法&第3章 运算符、表达式、语句
1.Java语言中定义了3种注释形式:
(1)// 单行注释,注释到行尾
(2)/---------/ 单行或多行注释
(3)/**-------*/可用于文档化处理的单行或多行注释
2.语句:Java语句以分号(;)结尾。
语句块:一个语句块是以{}为边界
关键字:java中一些赋以特定的含义,并用作专门用途的单词称为关键字(keyword)所有java关键字都是小写的。true和false虽然被用作特殊用途但不是关键字。
Java关键字,见截图P15页表2-1。
标识符:标识符用作给变量、类和方法命名,可以以下划线,,字母,中文开头,首字母后可以跟字母、数字、下划线、,字母,中文开头,首字母后可以跟字母、数字、下划线、,字母,中文开头,首字母后可以跟字母、数字、下划线、、中文。标识符区分大小写,标识符应见名知意,简洁。Java语言区分大小写。
习惯上:
类名:首字母大写,其余字母小写,如果由多个单词构成,则每个单词的首字母大写。
接口名:同类名
变量名:首字母小写,如果由多个单词构成,则每个单词首字母大写。
方法名:同变量名。
常量:全大写,如果由多个单词构成,则用_连接。
包名:全小写。
3.数据类型
整数类型(byte、short、int、long)
数值型
简单数据类型 浮点类型(float、double)
字符型(char)
布尔型(boolean):true、false
数据类型
类 (class)
引用数据类型 接口 (interface)
数组
             字符串 (String)
简单数据表示数的范围:略
Char型数据用来表示通常意义上的字符,字符常量是用单引号括起来的单个字符,java字符采用Unicode编码,每个字符占两个字节,因而可以用16进制编码形式表示。Java语言还允许用转义字符来改变字符的含义。
转义符 详见教材
数据类型之间的转换:
Byte、short、char之间不会相互转换,这三者在转换时首先转换为int类型。
当系统需要的类型大于实际类型时,数据自动升级,(赋值时左大于右),例:
Byte b=18;
int i=b;
int x=67;
double d=x;
float f=8.3f;
long l=f; error
当系统需要的数据类型小于实际类型时,数据需强制转化。例:
int i=10;
byte b=(byte)i;
double d=63.5;
char c=(char)d;
有多种数据类型一起计算时,系统首先自动将所有数据类型转换成容量最大的那种类型,然后再进行计算。
数据类型大小关系如下:
整数类:long > int > short > byte
浮点型:double > float
整型数据类型可以赋给浮点数据类型比如:
float short float int float long double long
注意:
char 可以赋给long和int ,但是不能赋给short 和byte(编译错误) 。
char 可以赋给float和double。
byte b = (byte) true;这个转换成立吗?不成立,布尔值和数字是不兼容的,不能作任何转换。
4.变量
在java中,使用变量之前,必须先申明变量的类型。变量是java程序中最基本的存储单元,其要素包括变量名,变量类型,和作用域。
声明变量的语法:
类型 变量名[, 变量名][=初值];
例如:int i; char c; float a, b, c;
一条声明语句可以声明多个变量:例:int i = 10,j;
变量的作用域
变量的作用域指一个变量起作用的范围,它决定了一个变量何时可以访问、何时不可以访问。Java中任何变量的作用域都从该变量声明之后开始,并且只在该声明的语句块中使用,也就是该变量只能在声明它的那个花括号{}中使用。
变量有分为成员变量(属性)和局部变量。
成员变量:在类中声明的变量称为成员变量。使用范围:通常在类开始处声明,可在整个类中使用。
局部变量:在方法或块(块由两个花括号)中声明的变量称为局部变量。使用范围:从声明处开始到它所在方法或块的结束处。
例:{int x = 4;
//这之间只有x可以访问
int y = 1;
//x和y可以访问
{
int z = 2;
//x、y、z都可以访问
z = 5;
}
x = 4;
//只有x和y可以访问,不可以访问z
}
5.常量
常量就是程序里持续不变的值,是不能改变的数据。
声明常量的格式如下:
final 类型 常量名[,常量名]=值;
整型常量:
十进制:不能以0开头,多个0~9之间的数字
十六进制: 以0x或0X开头 0x8a 0X56d
八进制:必须以0开头 034 0376
长整型:必须以L结尾 87L 345L
浮点数常量:
float型:2e3f 0.6f
double型:4.1d 1.23d 1.23
布尔常量:true 和 false
字符常量: ‘a’ ‘5’
字符串常量:“hello” “8698” “\nmain” 转义字符\n表示换行
null常量:null,表示对象的引用为空。
6. Java中的运算符
算术运算符、关系运算符、赋值运算符、逻辑运算符、位运算符、条件运算符
算术运算符
运算符 运算 范例 结果

  • 正号 +3 3
  • 负号 b=4;-b; -4
  • 加 5+5 10
  • 减 6-4 2
  • 乘 3*4 12
    / 除 5/5 1
    % 取模(求余) 5%5 0
    ++ 自增(前) a=2;b=++a; a=3;b=3;
    ++ 自增(后) a=2;b=a++; a=3;b=2;
    – 自减(前) a=2;b=–a; a=1;b=1;
    – 自减(后) a=2;b=a–; a=1;b=2;
  • 字符串相加 “he”+“llo” “hello”
    两个整数之间的相除(/)运算结果还是整数,其结果是除法结果的整数部分。
    例如:5/2结果为2
    要获得实数结果,运算中至少一个浮点数。
    例如:5/2.0结果为2.5
    关系运算符
    运算符 运算 范例 结果
    == 相等于 4==3 false
    != 不等于 4!=3 true
    < 小于 4<3 false

大于 4>3 true
<= 小于等于 4<=3 false
= 大于等于 4>=3 true
赋值运算符
运算符 运算 范例 结果
= 赋值 a=3;b=2; a=3;b=2;
+= 加等于 a=3;b=2;a+=b; a=5;b=2;
-= 减等于 a=3;b=2;a-=b; a=1;b=2;
= 乘等于 a=3;b=2;a=b; a=6;b=2;
/= 除等于 a=3;b=2;a/=b; a=1;b=2;
%= 模等于 a=3;b=2;a%=b; a=1;b=2;
逻辑运算符
运算符 运算 范例 结果
! NOT(非) !true false
&& AND(短路与) false && true false
|| OR(短路或) false || true true
在使用短路与(&&)时,如果第一个操作数(或表达式)为“假”,则不再计算第二个操作数(或表达式),直接返回“假”。
在使用短路或(||)时,如果第一个操作数(或表达式)为“真”,则不再计算第二个操作数(或表达式),直接返回“真”。
逻辑运算符只能用于布尔(boolean)类型之间;其结果值为布尔(boolean)类型。
条件运算符
条件运算符是一个三目运算符,也是唯一的一个三元运算符,符号为“? :”,在程序中能实现简单的判断功能。
语法格式:
表达式1?表达式2:表达式3
其中表示1是一个布尔表达式,如果表达式1结果为true,则执行表达式2,否则执行表达式3。
举例说明:求a,b的最大值。
int a=4,b=6,max;
max=a>b?a:b; //将a和b中的较大值赋给max
7.Java中的控制语句
(1)if(表达式)…else…条件语句;
(2)for(表达式)… 循环语句;
(3)while(表达式)… 循环语句;
(4)do…while(表达式)…循环语句;
(5)switch 多分支选择结构;
(6)continue 结束本次循环语句;
(7)break 终止执行switch或循环语句;
(8)return 从方法返回语句。
8.条件语句
分为四种:
单分支条件语句
语法格式为:if(条件表达式){
语句或语句块;
}
二分支条件语句
语法格式为:if(条件表达式){
语句或语句块1;
}else{
语句或语句块2;
}
嵌套条件语句
语法格式为:if(条件表达式){
if(条件表达式){
语句或语句块;
}
}else{
语句或语句块2;
}
多分支条件语句
语法格式为:if(条件表达式1){
语句或语句块1;
}else if(条件表达式2){
语句或语句块2;
} ……
……
} else if(条件表达式n){
语句或语句块n;
}else{
语句0;
}
9.switch-----case多分支选择语句
语法格式为:switch(条件表达式){
case 常量1:
语句1;
break;
case 常量2:
语句2;
break;
……
case 常量N:
语句N;
break;
[default:语句;break;]
}
注意:
条件表达式的返回值类型必须是以下类型之一:int、byte、char、short、枚举常量。
case子句中的值常量N必须是常量。且所有case子句中的值应是不同的。
default子句是可选的。
break语句用来在执行完一个case分支后,是程序跳出switch语句,即终止switch语句的执行。
在一些特殊情况下,如多个不同的case值要执行一组相同的操作,中间就可以不用break。
10.for循环语句
语法格式为:for(变量初始化表达式;循环条件表达式;迭代部分)

语句或语句块;//循环体

for循环可以再嵌套for循环。
注意:在for循环的初始化或迭代部分,可以有多个表达式,表达式之间用逗号隔开。
例如:int count =0;
for(int a= 1,b=10;a<b;a++,b--){
count++;
} 共循环多少次?
11.while循环语句
语法格式为:while(循环条件 表达式){
语句或语句块;

12.do-----while循环语句
语法格式为:do{
语句或语句块;
}while(表达式);(注意分号绝对不能省略)
注:if语句和循环语句的花括号在执行的语句只有一句时可以省略。
13.continue结束本次循环语句
使用continue语句可以立刻重新开始下一轮的循环,而不再执行循环后面的语句。
14.break终止执行switch和循环语句
使用break语句可以立刻终止循环,开始执行循环后面的语句。
对于退出循环:break和continue的区别:break是退出整个循环;continue是退出当前循环继续下一次循环。
循环结构的使用:
例1:求m,n的最大公约数。
例2:菲波那契数列指的是这样一个数列:
   1,1,2,3,5,8,13,21……
15.return从方法返回语句
return语句主要作用是退出当前方法,将程序控制转移到方法的调用者。
一般格式为: return [值或表达式];
16.方法调用语句
方法调用语句是执行对象的某个方法。
一个完整的方法调用语句由某个方法调用加上一个分号构成。
调用语法格式为:类对象名称.方法名(参数);
例如:
System.out.println(“This is a statement call a method!”);
调用对象System.out的println方法。
17.数组
定义:是用来存储一组或多组相同类型数据的数据类型。
数据类型:可以是基本数据类型(例如:数字型、字符型、布尔型),也可以是复合数据类型(例如:数组、类、字符串和接口)。
※数组本身就是一种复合数据类型,因此,数组的元素也可以是数组,这样就构成了二维数组和多维数组。
数组作为复合数据类型,与基本数据类型最大的区别:
数组是通过引用来控制的,而基本数据类型是通过值来控制的。
一维数组的声明:
格式: 类型 数组名[ ]; 或 类型[ ] 数组名;
举例:int a[ ]; String[ ] b;
数组的初始化有两种方法:一种是直接初始化,另一种是动态初始化。
静态初始化
格式: 类型 数组名[ ] = { 值1,值2,…,值n};
举例:int a[ ] = {1,2,3};
int b[ ]; b = {1,2,3};
动态初始化:
格式:
(1)声明时初始化:
类型 数组名[ ] = new 类型[ 数组长度];
(2)声明后初始化:
类型 数组名[ ];
数组名 = new 类型[数组长度];
注:数组的大小一经创建可不可以改变大小了?
不可以,数组是定长的,一经创建就不能再改变大小了
访问数组元素
数组元素是通过数组名和下标来访问。未被初始化的数组,不能进行访问。
格式:数组名[下标]
Java中,数组的下标从0开始,直到 <数组长度-1>结束。
获得数组的长度,通过length属性来获得:数组名.length
数组的复制
方法: System.arraycopy(源数组,源数组起始位置,目标数组,目标数组起始位置,长度);
注:不管是要复制的数组,还是被复制的数组,都必须先初始化。
例:int a[ ] = {1,2,3}, b[ ] = new int[3];
System.arraycopy(a,0,b,0,3); //将数组a复制到b
对象数组:
例:
//定义一个对象数组,StringBuffer是一个字符串缓存类
StringBuffer a[ ] = new StringBuffer[2];
//给对象赋值
a[0] = new StringBuffer(“Array[0]”);
a[1] = new StringBuffer(“Array[1]”);
System.out.println(“a[0]=” + a[0] + “ a[1]=” + a[1] );
a[0].append(“ is Modified”); //追加字符串
System.out.println(“a[0]=” + a[0]);
注:请回顾String和StringBuffer的区别
字符串的常用方法有哪些?P46-P49
length()方法:求字符串的长度
compareTo():比较字符串的大小
equals():比较字符串是否相等
trim():去除字符串首尾空格
charAt()方法:可以返回指定位置的字符
substring()方法:截取指定位置的子串
indexOf()方法:查找子串的位置
toLowerCase(), toUpperCase()方法:字符串大小写转换
二维数组和多维数组
定义格式:类型 数组名[ ][ ]; 或 类型[ ][ ] 数组名;
举例: int a[ ][ ]; double[ ][ ] b;
这几种定义不合法:int a[2][ ]; int b[ ][2]; int c[2][2];
二维数组的初始化:二维数组的初始化也有直接和动态初始化两种方式。
直接初始化格式: 类型 数组名[][]= {{ 值1,值2,…,值n} ,{ 值1,值2,…,值n}…};
举例:int a[ ][ ] = {{1,2,3},{4,5,6},{7,8,9}};
动态初始化格式
类型 数组名=new 类型[长度1][长度2]; 长度1:表示行,长度2:表示列。
例:int a[][]=new int[3][5];
类型 数组名=new 类型[长度1][];
数组名[0]=new 类型[长度20];
数组名[1]=new 类型[长度21];
……
数组名[长度1-1]=new 类型[长度2n];
例:int a[][];
a=new int[3][];
a[0]=new int[5];
a[1]=new int[8];
a[2]=new int[6];
注:问1:声明int[][] a = new int[3][],a是一个二维数组,a[0]本身是什么类型的?
二维数组的元素都是一维数组,a[0]是int[]类型的
问2:可以把2个int型,3个double型,4个String型的值放到一个数组中吗?
不可以,数组的元素类型必须是相同类型的。
问3:操作数组比较方便的实用类?
java.util.Arrays类提供了很多关于数组的实用方法

面向对象开发期末复习概述(二)相关推荐

  1. 面向对象开发期末复习概述(四)

    面向对象开发期末复习概述(四) 第7章 异常处理(内部类不作要求) 程序中的三类错误 编译错误.逻辑错误和运行时错误 (1)编译错误是由于没有遵循Java语言的语法规则而产生的,这种错误要在编译阶段 ...

  2. 面向对象开发期末复习概述(七)

    面向对象开发期末复习概述(七) 第15章 泛型与集合框架 集合 即容器(Container),是用来存放数据的盒子.Java中提供了很多的集合类 集合特征:(1)可以存放多个数据,数据可以是不同类型 ...

  3. 面向对象开发期末复习概述(三)

    面向对象开发期末复习概述(三) 第4章对象和类 & 第5章子类和继承&第6章 接口与实现 OOP是:Object Oriented Programming(面向对象编程) 类和对象的区 ...

  4. 面向对象开发期末复习概述(六)

    面向对象开发期末复习概述(六) 第10章 输入/输出流 什么是输入输出 输入输出过程: 读取 写入 打开输入流 打开输出流 如流中还有信息,则读取数据 如流中还有更多信息,则写入数据 关闭输入流 关 ...

  5. 面向对象开发期末复习概述(一)

    面向对象开发期末复习概述(一) 第1章 Java概述 1.开发Java语言的公司:Sun (Sun Microsystems)太阳微电子公司开发 2.Java的3个版本?(JDK 1.5后) Java ...

  6. 移动应用开发期末复习(自用复习勿转)

    移动应用开发期末复习 题型 选择题 15*2=30 填空题 13*2=26 (题中已给候选项,选出正确的选项即可) 简答题 4*6=24 程序设计填空题 10*2=50 (题中已给候选项,选出正确的选 ...

  7. 大数据技术原理与应用 第三版 林子雨 期末复习(二) Hadoop HDFS HBase

    大数据技术原理与应用 第三版 林子雨 期末复习(二) Hadoop HDFS HBase Hadoop生态系统 HDFS HDFS结构 块 Name Node与Second Name Node与Dat ...

  8. Java面向对象程序设计 期末复习

    第1章 1.Java应用程序分几类?各有什么特点? 不同的Java程序运行在不同的环境中,习惯上将运行环境相同的Java程序归为一类,可以分3类: Java Application应用程序,属于Jav ...

  9. 嵌入式系统开发期末复习

    嵌入式系统开发 嵌入式系统概述 ARM技术及体系结构 ARM7TDMI指令系统 嵌入式系统概述 1.什么是嵌入式系统?有何特点? 嵌入式系统是以应用为中心,以计算机技术为基础,且软.硬件可裁剪的, 适 ...

最新文章

  1. cms是什么意思啊_GC 知识点补充——CMS
  2. CentOS服务器利用.htaccess批量封IP方法介绍
  3. JAVA中indexOf函数用法
  4. conn.execute参数
  5. Android构建流程——篇五
  6. 面试题解(3):SQL
  7. perror的特殊输出
  8. VIM使用系统剪切板
  9. java netbeans 教程_NetBeans 教程
  10. 设计一个python程序来计算显示通过如图_Python程序设计 17计算机、物联网 合班-中国大学mooc-试题题目及答案...
  11. Ubuntu18.04关闭zeitgeist-datahub自启动
  12. 使用el-tree-transfer不显示label的坑
  13. 漏洞复现-——通达OA任意用户登陆漏洞
  14. APP——adb命令——背诵实操——背诵总结
  15. python显示等待隐式等待
  16. Vue和layUI的区别何在?
  17. 光纤跳线、尾纤、光纤连接器之间有什么区别
  18. 一些PPT演讲前暖场的音乐
  19. 键盘VK键值(java键盘监听)
  20. 【机器人学、机器视觉与控制】臂形机器人——机器人运动学

热门文章

  1. vue实现实时直播 摄像头实现实时直播 dplayer+flv flv.js
  2. socket多进程编程
  3. OSPF的LSA类型 ——连载四ASBR汇总LSA
  4. offsetX,offsetLeft,offsetWidth的区别详解
  5. Excel数据可视化竟可以如此惊艳!数据可视化大屏制作
  6. ElementUI中为table增加小计/合计
  7. banner设计怎么思考
  8. 组合数学之二 —— 容斥原理及应用
  9. 跨境电商亚马逊2022年再去做亚马逊好做吗
  10. python迭代是什么意思_python中的迭代是什么意思?