Java技术包括:JavaEE,JavaME,JavaSE。
JavaSE:(Java Platform,Standard Edition)用于普通标准应用程序的开发
JavaME: (Java Platform Micro Edition) 用于消费类电子设备的应用程序的开发
JavaEE: (Java Platform Enterprise Edition) 用于企业级应用程序的开发
变量的定义和赋值:
定义变量:
数据类型 变量名 = 数值;(如:int i = 100)
使用变量的步骤:
第一步:声明一个变量
第二步:赋值
第三步:使用变量
Java基本数据类型:
Java中定义了四类/八种基本数据类型
逻辑型----boolean(boolean类型用于逻辑运算,一般用于程序流程控制。boolean类型数据只允许取值
true或false,不可以是0或非0的整数替代true和false。)
字符型---- char(字符常量是用单引号括起来的单个字符。如:final char c = 'A';)
整数型---- byte, short, int, long
浮点数型---- float, double
注释:
在某种条件下,系统自动完成类型转换
两种类型兼容
例如:int 和 double 兼容
目标类型大于源类型
例如:double 型 大于 int 型
对于表达式
如果一个操作数为double型,则整个表达式可提升为double型
注意:
”&&“是”and“的意思,即:在一个判断中两个条件要同时成立,判断才能成立。
“||”是“or”的意思,即:在一个判断中只要有一个条件成立,这个判断就成立。
"=" 是赋值的意思 "==" 是等于的意思
运算中运算符中“∕”和“%”的区别:
“∕”是取整 “%”是取余
发生自动类型转换的条件是:①两种类型兼容。②目标类型大于源类型。
强制类型转换:(类型名)表达式 如:int b = (int)10.2; double a = 10;int c = (int)a;
if和if-else条件结构执行的顺序是什么?
if:如果条件表达式成立,执行语句
if-else:如果条件表达式成立,执行语句1,如果不成立,执行语句2
比较switch和多重if结构:
相同点:
都可以实现多分支结构
不同点:
swith
只能处理等值的条件判断,且条件是整型变量或字符变量的等值判断
多重if
处理在else部分还包含其它if结构,特别适合某个变量处于某个区间时的情况
循环:
while(),(do-----while();),for( ;;)三中循环间的区别:
while是先判断在执行。do-----while是先执行,再判断。(这两种循环适合在不清楚循环次数的情况下使用)
for是按照次序执行(; ;)中的语句,但语句1只使用一次。
使用for循环结构的步骤:
1、分析循环条件和循环操作
2、套用for语法写出代码
3、检查循环是否能够退出
注意:
①在(do------while();)中()后面的“ ;”。
②在循环写好后,检查是否有跳出循环的语句。
break:改变程序控制流
break的作用:用于do-while、while、for中时,可跳出循环而执行循环后面的语句。
continue :只能用在循环里
continue 作用:跳过循环体中剩余的语句而执行下一次循环
break与continue之间的区别:
break是跳出本次循环。continue是结束后面大的循环,重新开始下一次循环。
对象和类
万物皆对象。
Java的宗旨:一处编写,处处使用。
面向对象设计的三个基本特征:
①抽象与封装:
抽象是把系统中需要处理的数据和在这些数据上的操作结合在一起,根据功能、性质和用途等因素抽象成不同的抽象数据类型。每个抽象数据类型既包含了数据,又包含了针对这些数据的授权操作。在面向对象的程序设计中,抽象数据类型是用“类”这种结构来实现的,每个类里都封装了相关的数据和操作。
封装是指利用抽象数据类型和基于数据的操作结合在一起,数据被保护在抽象数据类型的内部,系统的其他部分只有通过包裹在数据之外被授权的操作,才能与这个抽象数据类型进行交互。
②继承:
它是与传统方法不同的一个最有特色的方法。它是面向对象的程序中两个类之间的一种关系,即一个类可以从另一个类(即它的父类)继承状态和行为。继承父类的类称为子类。
继承的优越性:通过使用继承,程序员可以在不同的子类中多次重新使用父类中的代码,使程序结构清晰,易于维护和修改,而子类又可以提供一些特殊的行为,这些特殊的行为在父类中是没有的 。
③多态:
是指一个程序中同名的方法共存的情况,调用者只需使用同一个方法名,系统会根据不同情况,调用相应的不同方法,从而实现不同的功能。多态性又被称为“一个名字,多个方法”。
所有Java程序都以类class为组织单元
关键字class定义自定义的数据类型
创建类:
public class 类名 {
//定义属性部分
属性1的类型 属性1;
属性2的类型 属性2;
…
属性n的类型 属性n;
//定义方法部分
方法1;
方法2;
…
方法m;
}
定义一个类的步骤:
1、定义类名
2、编写类的属性
3、编写类的方法
使用对象的步骤:
使用new创建类的一个对象
如:YinHe yinHe(即:新创建的一个对象名) = new YinHe ();
使用对象:使用“.”进行以下操作
给类的属性赋值:对象名.属性
调用类的方法:对象名.方法名()
构造函数:
特点:
与类同名,无返回值,自动调用,可以重载,不能象一般方法那样用“对象.”显式的调用。
作用:完成对类对象的初始化工作(包括对类的属性赋初值)。
构造函数可以带参数。
必须用 new 关键字调用构造方法
可以重载.
使用:
public 构造的类名(类型 参数名){
语句;
}
定义类的方法:
public 返回值类型 方法名() {
//这里编写方法的主体
}
注意:
如果方法具有返回值,方法中必须使用关键字return返回该值,返回类型为该返回值的类型
如何给方法起名字?
①必须以字母、‘_’或‘$’开头(最好是以小写字母开头)。
②可以包括数字,但不能以它开头。
方法的调用:
方法之间允许相互调用,不需要知道方法的具体实现,提高了效率
注意:
在同一个类中,方法可以直接调用。但如不在同一类中,必须先将要调用的方法所在的类实体化。
变量的作用域:
在一个程序中声明的变量的作用域可以划分为以下4类之一:
①成员变量的作用域;
②局部变量的作用域;
③方法参数的作用域;
④异常处理参数的作用域。
注意:方法内的变量是不能带有访问修饰符的。
包命名规范:
①包名由小写字母组成,不能以圆点开头或结尾。
②自己设定的包名之前最好加上唯一的前缀,通常使用组织倒置的网络域名。如:域名javagroup.net
③自己设定的包名部分依不同机构各自内部的规范不同而不同。
JDK中主要的包介绍:
java.lang----包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能
java.awt----包含了构成抽象窗口工具集(abstract window toolkits)的多个类,管理应用程序的 用户界面(GUI)。
java.applet----包含applet运行所需的一些类。
java.net----包含执行与网络相关的操作的类。
java.io----包含能提供多种输入/输出功能的类。
java.util----包含一些实用工具类,如定义系统特性、使用与日期日历相关的函数。
数组:
分类存放不同类型的数据
计算数组中的元素长度用 .length;
数组概念:
①数组是多个相同类型数据的组合,实现对这些数据的统一管理。
②数组属引用类型,数组型数据是对象(object),数组中的每个元素相当于该对象的成员变量。
③数组中的元素可以是任何数据类型,包括基本类型和引用类型。
使用数组四步走:
1、声明数组。(如:int[] i;)
2、分配空间。(如:i = new int[5];)
3、赋值。(如:i[1] = 8;)
4、处理数据。(如:i[] = i[]*10;)
声明数组并为它赋值:数据类型[ ] 数组名 = new 数据类型[大小] ;
排序:使用 Arrays.sort(数组名);(使用前必须导入: import Java.utile.* 包)
字符串:
计算字符串长度:
字符串标识符.length();
字符串比较:
equals()方法是直接比较
使用:(favCourse1.equalsIgnoreCase(favCourse2))
equalsIgnoreCase()方法是忽略的小写的比较
toUpperCase()方法是转换成大写后再比较
使用:((favCourse1.toUpperCase()).equals(favCourse2.toUpperCase()))
toLowerCase()方法是转换成小写后再比较
字符串连接:
①使用"+"
②使用 concat(".....")
常用提取方法:
①public int indexOf(int ch) ( 搜索第一个出现的字符ch )
②public int lastIndexOf(String value) ( 搜索最后一个出现的字符串value )
③public String substring(int index) ( 提取从位置索引开始的字符串部分 )
④public String substring(int beginindex, int endindex) (提取beginindex(从0开始计数)和endindex(从1开始计数)之间的字符串部分)
⑤public String trim() ( 返回一个前后不含任何空格的调用字符串的副本 )
带参数的方法的使用:
定义带参数的方法:
public String zhazhi ( String fruit ) {
return;
}
调用带参数的方法:
Zhazhi myZhazhi = new Zhazhi();
StringBuffer的声明:
StringBuffer sb = new StringBuffer(); (创建空字符串)
StringBuffer的使用:
sb.toString(); (转换为String类型)
sb.append("**"); //追加字符串