接口是抽象方法和常量值的定义的集合
从本质上将,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现
接口特性
多个无关的类可以实现同一个接口
一个类可以实现多个无关的接口
与继承关系类似,接口与实现类之间存在多态性
/**
* java中定义接口
*/
public interface JavaInterfaces {
}
异常分类图
异常捕获处理
使用自定义的异常
/**
* 自定义的一个异常类MyException,且是从Exception类继承而来
*/
public class MyException extends Exception {
private int id;
/**
* 自定义异常类的构造方法
* @param message
* @param id
*/
public MyException(String message,int id) {
super(message);//调用父类Exception的构造方法
this.id = id;
}
/**
* 获取异常的代码
* @return
*/
public int getId() {
return id;
}
}
声明并抛出异常
异常处理总结
数据基本概念
一维数组
一维数组的声明方式有2种:
例如:int a1[ ]; int[ ] a2;
double b[ ];
person[ ] p1; String s1[ ];
注意JAVA语言中声明数组时不能指定其长度(数组中的元素个数)
如:int a[5]; 这样声明一维数组是非法的。
元素为引用类型的数据
注意: 元素为引用数据类型的数组中的每一个元素都需要实例化
class Date{
int year; int month; int day;
Date(int y, int m ,int d ){
year = y;
month = m;
day = d ;
}
}
数组初始化
public class Test{
public static void main(String args[ ]){
int a[ ]; //定义数组,即声明一个int类型的数组a[ ]
a=new int[3]; //给数组元素分配内存空间。
a[0]=3; a[1]=9; a[2]=8; //给数组元素赋值。
Date days[ ];
days=new Date[3];
days[0]=new Date(1, 4, 2004);
days[1]=new Date(2, 4, 2004);
days[2]=new Date(3, 4, 2004);
}
}
class Date{
int year, month, day;
Date(int y, int m, int d){
year = y ;
month = m ;
day = d ;
}
}
数组元素的引用
定义并用运算符new为之分配内存空间后,才可以引用数组中的每个元素,数组元素的引用方式为:arrayName[index], index为数组元素下标,可以是整型常量或整型表达式。如a[3], b[i], c[6*i]。
数组元素下标从0开始;长度为n的数组的合法下标取值范围为0 ~ n—1。
每个数组都有一个属性length指明它的长度,例如:a.length的值为数组a的长度(元素个数)。
二维数组
理解java中各个维度的数据模型
静态重载方法:valueOf 可以将基本类型转换为字符类型
public class Test{
public static void main(String args[]){
StringBuffer sBuffer = new StringBuffer("菜鸟教程官网:");
sBuffer.append("www");
sBuffer.append(".smallmartial");
sBuffer.append(".cn");
System.out.println(sBuffer);
}
}
import java.io.*;
public class FileList{
public static void main(String[] args){
File f = new File("d:/A");
System.out.println(f.getName());
tree(f,1);
}
private static void tree(File f,int level){
String preStr = "";
for(int i = 0; i < level; i++ ){
preStr +=" ";
}
File[] childs = f.listFiles();
for(int i=0;i<childs.length;i++){
System.out.println(preStr + Childs[i].getName());
if(childs[i].isDirectory()){
tree(childs[i],level + 1);
}
}
}
}
public class TestEnum{
public enum MyColor{ red, green ,blue};
public static void main(String[] args){
MyColor m = MyColor.red;
switch (m) {
case red:
System.out.println("red");
break;
case green:
System.out.println("green");
break;
case blue:
System.out.println("blue");
break;
default:
break;
}
System.out.println(m);
}
}