今天是就java基础知识进行培训,由于我原来已经学习过相关内容,我着重看了关于类的继承,接口和多态的内容。
另一种写法for(Iterator i =c.iterator();i.hasNext();)
等同于for的增强版for(Object o :c)
set接口是Collection的子接口,元素没有顺序,而且不能重复
list接口是Collection的子接口,元素又顺序可重复
list的静态方法
sort(list)对list内元素排序
shuffle(list) 随机排序
reverse(list) 逆序排序
voidfill(List,Object) 用一个特定的对象重写整个List容器
void copy(List dest,Listsrc) 将src List容器内容拷贝到destList容器
intbinarySearch(List,Object) 对于顺序的List容器,采用折半查找的方法查找特定对象
所有排序都实现了Comparable接口,该接口只有一个方法ComparaTo,实现了Comparable接口的类通常实现comparaTo方法从而确定该类对象的排序方式。
必要是可以对该方法进行重写从而达到目的。
关于与Collection对应的map接口,键——值
Object put(Object key,Objectvalue); //放入一对东西,返回原key的value
Object get(Objectkey); //通过key找到value
Object remove(Objectkey); //去掉key对应的value,key随之也去掉
boolean containsKey(objectkey); //是不是包含key
boolean containsKey(objectvalue);
intsize(); 多少对
boolean isEmpty()
void putAll(Mapt); 把另一个Map所有值加进来
void clear();
关于泛型和打包,具体参看容器2
关于继承:
很简单的就能理解继承的关系,不过关于继承的构造方法需要着重记录下:
public class car {
protected Stringname;
public car(){
}
public car(Stringname){
this.name=name;
}
}
其他就是要注意,引用类的时候注意前面例如,car mt =new 摩托车("哈雷");不能调用car中没有,而摩托车中新增加的方法,卡车 kc = new卡车("大奔");这样便可以。
关于接口:
接口与继承类似,而又不相同,一个类只能继承一个父类,而一个类能有多个接口,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义。
所谓抽象类:
含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写。
抽象类不能被实例化。
抽象方法只需声明,而不需要实现。
关于多态:
car mt = new摩托车("哈雷");类似的写法,利用父类引用子类,可以方便的对对象进行更改。
然后对过去所学的java基础知识进行回顾:
常量 byte(8),short,int,long
实型flaot double
字符char
重载(一个类定义定义多个相同名字但参数不同),重写(继承子类对父类方法重写)
static关键字,静态变量程序中的方法均可访问(计数器),静态方法是使用公共内存空间的,就是说所有对象都可以直接引用,不需要创建对象再使用该方法。
例如:
public class mainClass{
intsum;
public static void main(Stringargs[]){
sum=Test.z(1,2);//直接用类.方法或者属性就可以使用该方法或属性。 z为静态方法,Test是类
}
}
权限修饰符:
priavte只能在类内部
default同个包
protected子类,同一个包
Public所有
String类:
charAt(i);返回第i个字符
length
indexOf(s)返回出现s的第一位置 indexOf(s,fromIndex)
equalsIgnoreCase(another)比较another忽略大小写
replace(old,new)替换
starsWith(),endWith()
toUpperCase(),toLowerCase()
substring(i) 返回字符串从i位置开始后的字符串 substring(a,b)
trim() 返回去掉开头结尾空格的字符串
valueOf() 将基本数据类型转换成字符串
split(s) 按分隔符分隔
StringBuffer可以对其值进行改变的字符串
append在StringBuffer后添加字符串
insert(i,s) 在指定位置添加指定字符串
基础数据类型包装类
Integer(int value)
Integer(Stirng s)
math,file类具体在常用类(2)
关于容器:
Collection接口
size(),isEmpty()
clear() 移除此 collection 中的所有元素
contains(Object)
是不是包含对象
add(Object) 添加
removed去除
其他方法在容器1
Iterator接口,Iterator是统一的来遍历Collection里所有元素的方法
Iterator i = c.iterator();
while(i.hasNext()){
Name n = (Name)i.next();
System.out.println(n.getS()+"");
} c为创建的对象
while(i.hasNext()){
Name n = (Name)i.next();
System.out.println(n.getS()+"");
} c为创建的对象
另一种写法for(Iterator i =c.iterator();i.hasNext();)
等同于for的增强版for(Object o :c)
set接口是Collection的子接口,元素没有顺序,而且不能重复
list接口是Collection的子接口,元素又顺序可重复
list的静态方法
sort(list)对list内元素排序
shuffle(list) 随机排序
reverse(list) 逆序排序
voidfill(List,Object) 用一个特定的对象重写整个List容器
void copy(List dest,Listsrc) 将src List容器内容拷贝到destList容器
intbinarySearch(List,Object) 对于顺序的List容器,采用折半查找的方法查找特定对象
所有排序都实现了Comparable接口,该接口只有一个方法ComparaTo,实现了Comparable接口的类通常实现comparaTo方法从而确定该类对象的排序方式。
必要是可以对该方法进行重写从而达到目的。
关于与Collection对应的map接口,键——值
Object put(Object key,Objectvalue); //放入一对东西,返回原key的value
Object get(Objectkey); //通过key找到value
Object remove(Objectkey); //去掉key对应的value,key随之也去掉
boolean containsKey(objectkey); //是不是包含key
boolean containsKey(objectvalue);
intsize(); 多少对
boolean isEmpty()
void putAll(Mapt); 把另一个Map所有值加进来
void clear();
关于泛型和打包,具体参看容器2
流
字节流 字符流
输入流 InputStream Reader
输出流 OutputStream Writer
缓冲流套接在节点流上,为节点流提供了新的方法
BufferedReader(Reader in),writer
BufferedInputStream(InputStream in),outputstream
FileInputStream fis=newFileInputStream("d:\\A\\HelloWorld.java");
BufferedInputStream bis=newBufferedInputStream(fis);
流的内容和线程以后应用在做复习。
字节流 字符流
输入流 InputStream Reader
输出流 OutputStream Writer
缓冲流套接在节点流上,为节点流提供了新的方法
BufferedReader(Reader in),writer
BufferedInputStream(InputStream in),outputstream
FileInputStream fis=newFileInputStream("d:\\A\\HelloWorld.java");
BufferedInputStream bis=newBufferedInputStream(fis);
流的内容和线程以后应用在做复习。
作业小程序:
猜拳游戏:
public class Test {
public static void main(String[] args) {
int i;
System.out.println("请输入您要出的拳:" + "\n" + "1.石头" + "\n" + "2.剪刀" + "\n" + "3.布");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.print("您出:");
System.out.println(translation(n));
i = (int) (Math.random() * 10) % 3 + 1;
System.out.print("电脑出:");
System.out.println(translation(i));
System.out.println(Judge(n, i));
}
public static String translation(int m) {
String s = null;
if (m == 1) {
s = "石头";
} else if (m == 2) {
s = "剪刀";
} else {
s = "布";
}
return s;
}
public static String Judge(int a, int b) {
String jg = null;
if (a == 1) {
if (b == 1) {
jg = "平局";
}
else if(b == 2) {
jg = "您赢啦!";
}else{
jg = "您输啦!";
}
}
if (a == 2) {
if (b == 2) {
jg = "平局";
}
else if(b == 3) {
jg = "您赢啦!";
}else{
jg = "您输啦!";
}
}
if (a == 3) {
if (b == 3) {
jg = "平局";
}
else if(b == 1) {
jg = "您赢啦!";
}else {
jg = "您输啦!";
}
}
return jg;
}
}