目录
1.Java介绍
Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
2.面向对象的三大特性
①继承:一般类只能单继承,内部类实现多继承,接口可以多继承。
特征如下:
a.继承关系是传递的。若类C继承类B,类B继承类A(多层继承),则类C既有从类B那里继承下来的属性与方法,也有从类A那里继承下来的属性与方法,还可以有自己新定义的属性和方法。继承来的属性和方法尽管是隐式的,但仍是类C的属性和方法。继承是在一些比较一般的类的基础上构造、建立和扩充新类的最有效的手段。
b.继承简化了人们对事物的认识和描述,能清晰体现相关类间的层次结构关系。
c.继承提供了软件复用功能。若类B继承类A,那么建立类B时只需要再描述与基类(类A)不同的少量特征(数据成员和成员方法)即可。这种做法能减小代码和数据的冗余度,大大增加程序的重用性。
d.继承通过增强一致性来减少模块间的接口和界面,大大增加了程序的易维护性。
e.提供多重继承机制。从理论上说,一个类可以是多个一般类的特殊类,它可以从多个一般类中继承属性与方法,这便是多重继承。Java出于安全性和可靠性的考虑,仅支持单重继承,而通过使用接口机制来实现多重继承。
②封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。访问权限控制public > protected > 包 > private 内部类也是一种封装
③多态:编译时多态,体现在向上转型和向下转型,通过引用类型判断调用哪个方法(静态分派)。运行时多态,体现在同名函数通过不同参数实现多种方法(动态分派)。
3.Java的基本数据类型
在Java中有8种数据类型来存储数值、字符和布尔值。分为六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
①级别从低到高为:byte,char,short(这三个平级)-->int-->float-->long-->double
②自动类型转换:从低级别到高级别,系统自动转的
③强制类型转换:什么情况下使用?把一个高级别的数赋给一个别该数的级别低的变量
4.Java基本语法
①语句与语句块
Java中是以“;”作为语句的分隔符。一个语句可以写在连续若干行内。例如:如下的程序一和二是等价的:
代码一:x=a+b+c+d+e+f; 代码二:x=a+b+c +d+e+f;
一对大括号 “{” 和 “}” 包含的一系列语句称为语句块。语句块可以进行嵌套,即为语句块中可以嵌套子语句块。
Java源程序允许在变量。标识符、表达式、语句的呢过代码元素之间出现任意多的空格、Tab键和回车等。在程序中适当添加空格、Tab键和换行可以增加程序的层次性和可读性。
②注释
在Java中有以下三种注释的方式:
a. //
表示注释一行
b. /* */
表示注释一行或者多行。
c. /** */
表示文档注释
5.Java语言中各基本数据类型介绍
整数类型
整数型用来存储整数数值,即没有小数部分的数值。可以是正数,也可以是负数。整数数据在Java程序中有3种表示形式,分别为十进制、八进制和十六进制。
整型数据根据它所占内容大小的不同可分为4种类型。
数据类型
内存
byte
8位
short
16位
int
32位
long
64位
浮点类型
数据类型
内存
float
32位
double
64位
字符类型
字符类型用于存储单个字符,占用16位(两个字节)的内存空间。在定义字符型变量时,要以单引号表示。使用char关键字可定义字符变量。
数据类型
内存
char
16位
布尔类型(逻辑型)
布尔类型又称逻辑类型,通过关键字boolean来定义布尔类型变量,只有只有true和false两个取值,分别代表布尔逻辑中的“真”和“假”。布尔类型通常被用在流程控制中作为判断条件。
6.Java中的关键字
关键字
含义
abstract
抽象类或方法
assert
用来查找内部程序错误
break
跳出一个switch或循环
byte
8位整数类型
case
switch的一个分支
catch
捕获异常的try块子句
class
定义一个类类型
continue
在循环末尾继续
default
switch的缺省语句
do
do/while循环最前面的语句
double
双精度浮点数类型
else
if语句的else子句
enum
枚举类型
extends
定义一个类的父类
final
一个常量,或不能覆盖的一个类或方法
finally
try块中总会执行的部分
float
单精度浮点数类型
for
一个循环类型
if
一个条件语句
implements
定义一个类实现的接口
import
导入一个包
instanceof
测试一个对象是否是某个类的实例
int
32位整型数
interface
接口,一种抽象类型,仅有方法和常量的定义
long
64位长整数型
native
由宿主系统实现的一个方法
new
分配新的类实例
null
一个空引用
package
包含类的一个包
private
表示私有字段,或者方法等,只能从类内部访问
protected
表示保护类型字段
public
表示共有属性或者方法
return
从一个方法中返回
short
16位整数类型
static
这个特性是这个类特有的,而不属于这个类的对象
strictfp
对浮点数计算使用严格的规则
super
超类对象或构造函数
switch
选择语句
synchronized
对线程而言是原子的方法或代码块
this
当前类的一个方法或构造函数的隐含参数
throw
抛出一个异常
throws
一个方法可能抛出的异常
transient
标志非永久性的数据
try
捕获异常的代码块
void
标记方法不返回任何值
volatile
标记字段可能会被多个线程同时访问,而不做同步
while
一种循环
7.Java中的运算符
运算符是一些特殊的符号,主要用于数学函数、一些类型的赋值语句和逻辑比较方面。
①赋值运算符
赋值运算符以符号“=”表示,它是一个二元运算符(对两个操作数作处理),其功能是将右方操作数所含的值赋给左方的操作数。
例如:
int a = 100;
②算术运算符
运算符
说明
+
加
-
减
*
乘
/
除
%
取余数
③自增和自减运算符
自增和自减是单目运算符,可以放在操作元之前,也可以放在操作元之后。操作元必须是一个整型或浮点型变量。自增、自减运算符的作用是使变量的值增1或减1。放在操作元前面的自增、自减运算符,会先将变量的值加1或减1,然后再使该变量参与表达式的运算。放在操作元后面的自增、自减运算符,会先使变量参与表达式的运算,然后再将该变量的值加1或减1。
例如:假设a=5
b=++a; //先将a的值加1,然后赋值给b,此时a的值为6,b的值为6 b=a++; //先将a的值赋值给b,再将a的值变为6,此时a的值为6,b的值为5
④比较运算符
比较运算符属于二元运算符,用于程序中的变量之间,变量和自变量之间以及其他类型的信息之间的比较。比较运算符的运算结果是boolean型。当运算符对应的关系成立时,运算的结果为true,否则为false。比较运算符共有6个,通常作为判断的依据用于条件语句中。
运算符
说明
>
比较左方是否大于右方
<
比较左方是否小于右方
==
比较左方是否等于右方
> =
比较左方是否大于等于右方
<=
比较左方是否小于等于右方
!=
比较左方是否不等于右方
⑤逻辑运算符
运算符
作用
&&
逻辑与
||
逻辑或
!
逻辑非
8.Java开发应用的要点
1、一个源文件中只能有一个public修饰的类,其他类个数不限。
2、一个源文件有n个类时,编译结果的class文件就有n个。
3、源文件的名字必须和public修饰的类名相同
4、java语言中单词拼写大小写严格区分。
5、main方法入口
6、每一句以分号(;)结束
9.程序举例
//一个简单的Java应用程序,显示内容:Hello World! 文件名为Hello.java class Hello{ public static void main(String args[]) //程序开始于main() { System.out.println("Hello World!"); } }
main方法:如上面注释,main是程序开始执行的第一行。对于一个Java应用程序来说,main方法是必需的,Java解释器在没有生成任何对象的情况下,以main作为入口来执行程序。每个类中可以定义多个方法,但main方法只能有一个。关键字public表示访问权限,指明所有的类都可以使用这一方法。本例中,main必须被定义为public类型,因为当程序开始执行时它需要被它的类之外的代码调用。关键字static指明该方法是一个类方法。关键字void指明main()方法不返回任何值。main方法圆括号中定义的String args[]是传送给main方法的参数,参数名为args,它是类String的一个对象。方法的参数用“类名参数名”来指定,多个参数间用逗号分隔。该行的最后一个字符是“{”,它表示了main程序体的开始,一个方法中包含的所有代码都将包括在这对花括号中间。另外,main仅是解释器开始工作的地方,一个复杂的程序可能包含几十个类,但这些类仅需要一个main方法。