以下为本章节的学习目录:
JAVA基础知识-类、方法、关键词和基本语言元素的说明
|---- 1 类
|---- 2 方法
|---- 3 关键字
|---- 4 基本语言元素
|---- 5 总结
下面我们讲解第一点:JAVA类。
1.1 JAVA类的概念
类是一个模板,它描述一类对象的行为和状态。
1.2 定义一个类
基本格式如下:
[修饰符] class 类名 { 0到多个构造器 0到多个成员变量 0到多个方法 0到多个初始化块 }1.3 修饰符
public class RoadTest { /** * 构造器 */ public RoadTest() { } }
[修饰符] 与类名相同的名(形参列表){ 构造器方法体代码 }名称与类名相同,没有返回值,不能写void 。
class文件,可以让你在任何一台安装了java虚拟机的机器上运行。
2.1 JAVA方法的概念
Java方法是语句的集合,它们在一起执行一个功能。
方法是解决一类问题的步骤的有序组合。
方法包含于类或对象中。
方法在程序中被创建,在其他地方被引用。
下面是一个无参的返回值为空的方法,参数可以加,返回值也可以是int型也可以是别的类型。
/** * 这是一个方法的定义 */ public void month() { }方法的修饰符(public protected private)三选一、static、final、synchronize、native,使用static就是静态方法了。
[修饰符] 方法的返回值类型 方法名称(形参列表) { //方法体代码 [return 返回值;] }初始化块:是用来初始化一些值的,它的优先级比构造器要高,一些需要多次使用但又是固定的值可以放进初始化块中。
public class RoadTest { { // 初始化代码块 } }2.2 类和方法的关系?
一个类中包含方法,同时可以包含多个方法,是一对多的关系。
3.1 关键字说明
Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。
Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。
java关键字共50个(其中包含两个保留字const,goto)。
const、goto 是关键字,虽然没用,但不能拿来当变量名。
true、false、null 不是关键字,但也不能用来当变量名。
friendly、sizeof 不是关键字,可以用来当变量名。
3.2 具体关键字
abstract 表明类或者成员方法具有抽象属性
assert 断言,用来进行程序调试
boolean 基本数据类型之一,布尔类型
break 提前跳出一个块
byte 基本数据类型之一,字节类型
case 用在switch语句之中,表示其中的一个分支
catch 用在异常处理中,用来捕捉异常
char 基本数据类型之一,字符类型
class 声明一个类
const 保留关键字,没有具体含义
continue 回到一个块的开始处
default 默认,例如,用在switch语句中,表明一个默认的分支
do 用在do-while循环结构中
double 基本数据类型之一,双精度浮点数类型
else 用在条件语句中,表明当条件不成立时的分支
enum 枚举
extends 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口
final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变,用来定义常量
finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
float 基本数据类型之一,单精度浮点数类型
for 一种循环结构的引导词
goto 保留关键字,没有具体含义
if 条件语句的引导词
implements 表明一个类实现了给定的接口
import 表明要访问指定的类或包
instanceof 用来测试一个对象是否是指定类型的实例对象
int 基本数据类型之一,整数类型
interface 接口
long 基本数据类型之一,长整数类型
native 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN语言)实现的
new 用来创建新实例对象
package 包
private 一种访问控制方式:私用模式
protected 一种访问控制方式:保护模式
public 一种访问控制方式:共用模式
return 从成员方法中返回数据
short 基本数据类型之一,短整数类型
static 表明具有静态属性
strictfp 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范 [1]
super 表明当前对象的父类型的引用或者父类型的构造方法
switch 分支语句结构的引导词
synchronized 表明一段代码需要同步执行
this 指向当前实例对象的引用
throw 抛出一个异常
throws 声明在当前定义的成员方法中所有需要抛出的异常
transient 声明不用序列化的成员域
try 尝试一个可能抛出异常的程序块
void 声明当前成员方法没有返回值
volatile 表明两个或者多个变量必须同步地发生变化
while 用在循环结构中
4.1 基础语言要素
1)标识符:用来给类、方法、变量起名。
A.必须以字母、下划线或$符号开始,其余字符可以是字母、数字、$符号和下划线。
B.只可包含两个特殊字符,即下划线_和美元符号$。不允许有其它特殊字符。
C.标识符不能包含空格。
D.区分大小写。
2)关键字:只有系统才能用的标识符。
特别提示1:true、false、null不是关键字!是字面量。
特别提示2:main不是关键字!它是一个特殊单词,可以被JVM识别,主函数是固定格式,作为程序入口。
3)注释:单行注释://多行注释:/*……*/文档注释:/**……*/
特别提示1:开发中类、属性、方法前,必须有文档注视。
4.2 八种基本数据类型
1)四种整数类型(byte、short、int、long):
byte:8位,用于表示最小数据单位,如文件中数据,-128~127
short:16位,很少用,-32768~32767
int:32位、最常用,-2^31-1~2^31(21亿)
long:64位、次常用
注意事项:
inti=5;//5叫直接量(或字面量),即直接写出的常数。
整数字面量默认都为int类型,所以在定义的long型数据后面加L或l。
小于32位数的变量,都按int结果计算。
强转符比数学运算符优先级高。见常量与变量中的例子。
2)两种浮点数类型(float、double):
float:32位,后缀F或f,1位符号位,8位指数,23位有效尾数。
double:64位,最常用,后缀D或d,1位符号位,11位指数,52位有效尾数。
特别提示:
二进制浮点数:1010100010=101010001.0*2=10101000.10*2^10(2次方)=1010100.010*2^11(3次方)=.1010100010*2^1010(10次方)
尾数:. 1010100010指数:1010基数:2
浮点数字面量默认都为double类型,所以在定义的float型数据后面加F或f;double类型可不写后缀,但在小数计算中一定要写D或X.X。
float的精度没有long高,有效位数(尾数)短。
float的范围大于long指数可以很大。
浮点数是不精确的,不能对浮点数进行精确比较。
3)一种字符类型(char):
char:16位,是整数类型,用单引号括起来的1个字符(可以是一个中文字符),
使用Unicode码代表字符,0~2^16-1(65535)。
特别提示:
不能为0个字符。
转义字符:\n换行\r回车\tTab字符\"双引号\\表示一个\
两字符char中间用“+”连接,内部先把字符转成int类型,再进行加法运算,char本质就是个数!二进制的,显示的时候,经过“处理”显示为字符。
4)一种布尔类型(boolean):true真和false假。
5)类型转换:char-->
自动转换:byte-->short-->int-->long-->float-->double
强制转换:①会损失精度,产生误差,小数点以后的数字全部舍弃。②容易超过取值范围。
4.3 常量和变量
变量:内存中一块存储空间,可保存当前数据。在程序运行过程中,其值是可以改变的量。
1)必须声明并且初始化以后使用。在同一个作用域中不能重复声明变量。
2)变量必须有明确类型(Java是强类型语言)。
3)变量有作用域(变量在声明的地方开始,到块{}结束)。变量作用域越小越好。
4)局部变量在使用前一定要初始化。成员变量在对象被创建后有默认值,可直接用。
5)在方法中定义的局部变量在该方法被加载时创建。
常量:在程序运行过程中,其值不可以改变的量。
特别提示:
字面量、常量和变量的运算机制不同,字面量、常量由编译器计算,变量由运算器处理,目的是为了提高效率。
eg:小于32位数的字面量处理
byte b1 =1;byte b2 =3; byte b3 =b1+b2;//编译错误,按照int结果,需要强制转换 byte b3 =(byte)(b1+b2); byte b3 =(byte)b1+(byte)b2;//编译错误!两个byte、short、char相加还是按int算 System.out.println(b3);//选择结果:A编译错误B运行异常C4Db3byte b4 =1+3;//字面量运算,编译期间替换为4,字面量4 byte b4 =4;不超过byte就可以赋值不管是常量还是变量,必须先定义,才能够使用。即先在内存中开辟存储空间,才能够往里面放入数据。
if语句:if、if-else、if-else-if:可以处理一切分支判断。格式:if(判断){…}、if(判断){…}else{…}、if(判断){…}elseif(判断){…}
switch语句:switch(必须整数类型){case常量1:…;case常量2:… ;….}
注意事项:int [] ary=new int[3];//ary----->{0,0,0}<----ary1 int[]ary1 =ary;//ary的地址赋值给ary1,ary与ary1绑定了同一个数组 //ary[1]与ary1[1]是同一个元素,数组变量不是数组(数组对象)2)数组(数组对象)有3种创建(初始化)方式:①new int[10000]给元素数量,适合不知道具体元素,或元素数量较多时②new int[]{3,4,5}不需要给出数量,直接初始化具体元素适合知道数组的元素。③{2,3,4}静态初始化,是②简化版,只能用在声明数组变量的时候直接初始化,不能用于赋值等情况。
int []ary1 =newint[]{2,3,4};//创建数组时候直接初始化元素 int[]ary2 ={2,3,4};//数组静态初始化,只能在声明变量的同时直接赋值 //ary2 ={4,5,6};//编译错误,不能用于赋值等情况ary2 =newint[]{4,5,6};3)数组元素的访问:①数组长度:长度使用属性访问,ary.length获取数组下标。②数组下标:范围:0~length-1就是[0,length),超范围访问会出现下标越界异常。③使用[index]访问数组元素:ary[2]。④迭代(遍历):就是将数组元素逐一处理一遍的方法。
如下例中的System.out.println(1+2+”java”+3+4);结果为3java34。eg:字符串前后的“+”都是连接符!不是加法运算符!
System.out.println("A"+'B');//AB System.out.println('A'+'B');//131 System.out.println(1+2+”java”+3+4);//3java34注意事项:比较字符串是否相等必须使用equals方法!不能使用==。"1".equals(cmd)比cmd.equals("1")要好。
通过本章节我们可以全面了解java类、方法的关系,了解java中的关键字和java的基本语言语法的元素和编码标准。
本章节为java的基础环节需要熟记,对后面的学习有很大帮助。
掌握了java关键字便可在接下来的学习中快速成长。