Java学习总结.docx
《Java学习总结.docx》由会员分享,可在线阅读,更多相关《Java学习总结.docx(10页珍藏版)》请在冰豆网上搜索。
Java学习总结
新疆轻工职业技术学院
J
a
v
a
学
习
笔
记
总
结
班级:
姓名:
一:
java标识符
指用户自己定义的类别、变量名、方法名等。
命名标识符应该遵从以下几点原则:
1.区分大小写,长度不限。
2.英文、数字、下划线、美元符号均可使用,但不能以数字开头。
3.不能使用Java关键字。
正:
Abcde、abc12、_Hi、$abc、abc123abc
误:
3abc、#abc、this、super(this、super是Java关键字)
二:
java关键字
(1)基本数据类型boolean、byte、char、short、int、long、float、double
(2)访问控制private、protected、public
(3)与类有关的关键字class、abstract、interface、extends、implements
(4)与对象有关的关键字new、instanceof、this、super、null
(5)与方法有关的关键字void、return
(6)控制语句if、else、switch、case、default、for、do、while、break、continue
(7)逻辑值true、false
(8)异常处理try、catch、finally、throw、throws
(9)其他transient、volatile、package、import、synchronized、native、final、staticstrictfp
(10)停用的关键字goto、const
三:
java变量与常量
变量是指在程序运行过程中可以改变的量;常量是指一经建立,在程序运行过程中其值保持不变的量。
变量的声明格式如下:
[访问控制符]数据结构变量名1[[=变量初值],变量名2[=变量初值],.....]
例如:
inta=10;
常量在程序中可以是具体的值,例如,123,12.3,‘c’。
也可以用符号表示使用的常量,
称为符号常量。
符号常量声明的基本格式如下:
final数据类型常量名=常量值
例如:
finaldoublePI=3.14159;
通常,变量和方法均已小写字母开头。
类名以大写字母开头。
四:
java数据类型
1:
基本数据类型
A.逻辑型(Logical,也称布尔型)----boolean(1byte)
B.字符型----char(2byte)
C.整型(Integral)----byte(1byte)short(2byte)int(4byte)long(8byte)
D.实数型(Floating,也称浮点数)----float(4byte)double(8byte)
2.对象数据类型(ObjectType)
注意:
:
对于整型数据,把超过其表示范围为的大整数赋给了变量时程序会出现错误。
在超过int型表达范围的整数后,一定要加上字母L(或小写的l)。
整型常数有int型与long型之分,long型常数后,一定要加上字母L或小写的L.。
如:
Int型常数:
1,123,-12345,012,0x12
Long型常数:
1L,2L,300L,0x12L
对于实数型如果想用float型小数,则要在小数后面添加上字母f或F。
如:
floata=1.23f
五:
java类型转换
(1)自动类型转换系统会自动地将两个字节型数据相加的结果转换成整型,这就是Java中所谓的自动类型转换。
如下:
x1byteb1=1;
x2byteb2=2;
x3byteb3=b1+b2;
事实上当编译时会出现错误,就是因为Java中这种自动类型转换机制。
x3应改为
intb3=b1+b2;。
(2)强制类型转换格式为:
(int)x[与C++不同C++有两种形式:
(int)x和int(x)]。
六:
java运算符:
注意:
优先级的高低(由高到低)
单目运算符-算术运算符-位移运算符-关系-逻辑-三目-赋值运算符
(1)逻辑非(!
)经常用在条件语句中。
(2)位非运算符(~)运算规则:
逢0变1,逢1变0。
一个例题的疑问:
bytea=7;
byteb=a;
System.out.println(b);//会输出-8?
很遗憾上面的代码会报错,原因在于我们把~a这个整型数赋给了一个字节型变量。
改正为byteb=(byte)~a;怎么回事呢?
(3)位移(shift)运算符(<<,>>,>>>)
“<<”将比特位左移一位,右端空位全部填0。
规律:
每左移一位其值就增加1倍。
“>>”将比特位右移一位,被移动的若为正数,最左端填0;若为负数,其最左端填1。
规律:
每右移1位,其值就减半。
“>>>”表示右移1位,并且无论被移的是正数还是负数,其最左端均填0。
所以,用“>>>”运算符操作负数后,将得到正整数。
注意:
这些运算符操作的数据是原始数据的副本,所以,操作后的原始值不变。
(4)&&与||
A&&B:
若A为false,则整个表达式即位假,与B的真假无关,所以运算时B并不被运算(即保持着原来的值)。
A||B:
一样。
运算时一定要注意。
所以&&与||又被称为短路运算符。
(5)位运算符:
位与(&)、位或(|)、位移或(^)
A&B:
比较两个操作数的比特位,若都为1,则结果为1,否则为0。
如果a=3,b=10,则a&&b是2。
a—>1110
b—>1010
a&&b—>0010
A|B:
对应比特位有一个是1,则结果是1,否则为0。
A^B:
对应比特位如果不相同,则结果1,否则是0。
(6)三目运算符(?
:
)格式为:
条件式?
值1:
值2
(6)赋值运算符
其中几个特殊的符号,如下:
“a|=10”等价于a=a|10,把a|10的值赋给变量a,a的值为9。
(7)对象运算符其结果值是boolean型。
如:
AinstanceofB:
如果A是B的对象,则返回true,否则,返回false。
System.out.println(“abc”instanceofString);的结果是true.因为abc是String类的对象。
七:
java基本结构
1,java程序由多个源文件(*.java)组成。
2,每个源文件(*.java)由一个或多个类组成,一个项目程序必须有一个主函数,主函数就是程序的入口。
阅读源程序首先要找到主函数,根据主函数中的代码分析各个类和接口,从而实现阅读、分析所有的源代码。
3,Java程序的编写组成就是在写类、接口,
4,一个java基本类结构如下:
类的修饰符class类名
{
[属性(变量)]
[方法]
[构造函数]
}
以上属性、方法、构造函数,根据程序的实际需要编写,并不一定都要写。
5,一个可以实现一定功能的java程序结构如下:
类的修饰符class类名
{
[属性(变量)]
[方法]
[构造函数]
主函数
{
主函数执行语句。
}
}
6,一个最简单的类:
空类
Class类名{}
空类,就是定义了一个类,类体为空,什么也干不了,在有些编译平台上是不允许的,编译是会出错。
空类目的是先定义相关的类,等以后在具体实现其功能。
可以将多个类写到一个源文件中,也可以一个类写成一个源文件。
作用是一样的。
一般别写程序时,根据程序的功能划分,都是将一个类写成一个源文件。
除非某个类是专门只为一个类服务的,才在一个源文件中写多个类。
但是一般为了便于程序的维护,多采取一个类一个源文件的做法。
7,类的继承
子类继承父类的所有方法和属性,并且能够扩展属性和方法,子类比父类能实现更多的功能。
8,接口
<1>定义
(1)Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
(2)接口定义的一般形式为:
[访问控制符]interface<接口名>{
类型标识符final符号常量名n=常数;
返回值类型 方法名([参数列表]);
}
<2>特点
1、Java接口中的成员变量默认都是public,static,final类型的(都可省略),必须被显示初始化,即接口中的成员变量为常量(大写,单词之间用"_"分隔)
2、Java接口中的方法默认都是public,abstract类型的(都可省略),没有方法体,不能被实例化
3、Java接口中只能包含public,static,final类型的成员变量和public,abstract类型的成员方法
4、接口中没有构造方法,不能被实例化
5、一个接口不能实现(implements)另一个接口,但它可以继承多个其它的接口
6、Java接口必须通过类来实现它的抽象方法
7、当类实现了某个Java接口时,它必须实现接口中的所有抽象方法,否则这个类必须声明为抽象类
8、不允许创建接口的实例(实例化),但允许定义接口类型的引用变量,该引用变量引用实现了这个接口的类的实例
9、一个类只能继承一个直接的父类,但可以实现多个接口,间接的实现了多继承.
<3>接口的用法
1、精简程序结构,免除重复定义
比如,有两个及上的的类拥有相同的方法,但是实现功能不一样,就可以定义一个接口,将这个方法提炼出来,在需要使用该方法的类中去实现,就免除了多个类定义系统方法的麻烦。
2、拓展程序功能,应对需求变化。
八:
java包的使用
包是Java语言提供的一种区别类名字命名空间的机制,它是类的一种文件组织和管理方式、是一组功能相似或相关的类或接口的集合。
Javapackage提供了访问权限和命名的管理机制,它是Java中很基础却又非常重要的一个概念。
<一>、包的作用
1把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
2如同文件夹一样,包也采用了树形目录的存储方式。
同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。
因此,包可以避免名字冲突。
3包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。
<二>、包的定义
在一个.java文件中可以一个public类和多个非public类,如果要将这些类组织在一个包当中,则在.java文件中除注释以外的第一行使用关键字package即可实现。
当需要调用此包中的类时,就可以使用关键字import进行导入。
在定义包的时候,应该注意几点:
1为了尽量使包名保持唯一性,包名通常采用小写、按倒写互联网址的形式进行定义。
如:
com.hank.www表示包文件放置的文件路径为com/hank/www。
2在进行命名包时,应该避免使用与系统发生冲突的名字,如java.lang、java.swing等。
<三>、java包创建和使用步骤
步骤1在C盘根目录下创建java文件夹,其下放置有源文件HelloWorld.java和MyTest.java。
编写包源文件代码HelloWorld.java和测试源文件代码MyTest.java。
如下:
//HelloWorld.java
packagecom.hank.www;
publicclassHelloWorld
{
publicHelloWorld(){System.out.println("Hello,World!
");}
publicvoiddisplay(){System.out.println("Welcometothejavaprogrammingworld!
");}
}
//MyTest.java
importcom.hank.www.HelloWorld;
publicclassMyTest
{
publicstaticvoidmain(String[]args)
{
HelloWorldhw=newHelloWorld();
hw.display();
}
}
步骤2在c:
/java文件夹下创建目录文件夹以存储包,路径为:
c:
/java/com/hank/www,此例中将HelloWorld.class存放在c:
/java/com/hank/www文件夹下。
步骤3编译源文件HelloWorld.java,首先应该进入源文件夹,即为cdc:
/java->javac–dc:
/javaHelloWorld.java,产生的HelloWorld.class便存放在c:
/java/com/hank/www文件夹下。
步骤4编译测试文件MyTest.java,即为javacMyTest.java,运行javaMyTest即实现了包的创建和导入。
[注]:
在使用命令javac–d之前,必须在c:
/java中先创建好包路径c:
/java/com/hank/www,因为该命令不会自动创建文件夹。