java学习笔记
来源:互联网 发布:域名证书生成 编辑:程序博客网 时间:2024/06/01 09:40
1.foreach
for(type variablename :array | collect){
//variablename表示依次迭代每个元素
}
例:
String[] books = {"aaa","bbb","ccc"};
for(String book : books){
System.out.println(book);
}
注意:在使用foreach迭代访问数组元素时,foreach中的循环变量属于临时变量,如果希望改变数组元素时,不要使用这种方法。
2.不要让子类修改,访问的方法,属性应该用private修饰;如果父类中的方法属性需要被子类访问用public,但有不让子类重写改方法,可以用final修饰;
该类可以让子类重写,但不能让其他类自由访问,可以用protect。
3.单列类
class Singleton{
private static Singleton instance;
private Singleton(){}
public static Singleton getInstance(){
if(instance == null){
instance = new Singleton();
}
return instance;
}
}
4.abstract 抽象类
1.定义一个抽象类 2.继承一个抽象类,没有完全实现父类的抽象方法 3.实现一个接口,没有完全实现接口的抽象方法
2.abstract 不能与private,final同时修饰方法,因为abstract需要子类重写。
3.没有抽象属性,没有类抽象方法(不能和static同时修饰方法)
5.接口
public interface 接口名 extends 父接口1,父接口2...{
常量定义;(系统默认为public static final )
抽象方法定义;(系统默认为public abstract)
}
接口里面可以使常量,方法,内部类,枚举类
类实现接口必须实现接口的所以方法,否则要把类定义成抽象类。
接口,抽象类相同点:
接口和抽象都不能被实例化,只能被其他类继承或实现
接口和抽象类都可以包含抽象方法,实现接口或继承抽象类的子类必须实现这些抽象方法
不同点:
接口里只能包含抽象方法,抽象类则可以只包含普通方法
接口只能定义静态常量属性,不能定义普通属性;抽象类既可以定义静态常量属性,也可以定义普通属性;
接口不包含构造器,抽象类包含构造器,但不是用来实例化对象,而是用来让子类调用这些构造器来完成属于抽象类的初始化操作
接口里不能包含初始化块,但抽象类完全可以只包含初始化块
一个类最多只能有一个父类,包括抽象类。但一个类可以实现多个接口
6.枚举类型
public enum Operation
{
PLUS,MINUS,TIMES,DIVIDE;
double eval(double x, double y)
{
switch(this)
{
case PLUS: return x+y;
case MINUS: return x-y;
case TIMES: return x*y;
case DIVIDE: return x/y;
default: return 0;
}
}
public static void main(String[] args)
{
System.out.println(Operation.PLUS.eval(3,4));
}
}
6,集合
主要根集合collect 和 map
Collect:派生出Set(无序,不重复);List(有序,可重复);Map(无序,key不重复)
Iterator 只适用于遍历集合,不能修改元素。
public class JavaTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Collection<String> books = new HashSet<String>();
books.add("c");
books.add("java");
books.add("php");
Iterator iterator = books.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
}
用foreach遍历集合
public class JavaTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Collection<String> books = new HashSet<String>();
books.add("c");
books.add("java");
books.add("php");
for (String string : books) {
System.out.println(string);
}
}
}
TreeSet 是SortSet的唯一实现,TreeSet中的元素是按从小到大排列的,因此,TreeSet中增加的元素必须是同一类对象,并且该对象实现了Comparable接口
EnumSet是专门为枚举类型实现的集合
List接口
List集合代表一个有序集合
List出来提供Iterator来遍历集合,还提供了ListIterator,ListIterator提供了向前迭代和增加元素的功能
ArrayList 和Vector作为List类的两个典型实现
Vector还提供了一个子类Stack
Arrays。ArrayList是一个固定长度的List集合,程序只能遍历里面的元素,不能增加,删除元素
List fixedlist = Arrays.asList(“aaaa”);
Map :HashMap 和Hashtable是Map接口的典型实现
其中,作为Key的对象必须实现hasCode方法和equals方法
9.Scanner(获取键盘输入,可以单独读取int,long,string等类型)
public class JavaTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
// sc.useDelimiter("/n");
while(sc.hasNext()){
System.out.println(sc.next());
if(...){
break;
}
}
}
}
BufferReader(读取整个String,不能读取单个int等类型)
- Java学习笔记--CSS笔记
- Java学习笔记001
- Java 学习笔记
- java 学习笔记
- Java学习笔记
- java 学习笔记
- java学习笔记
- java学习笔记
- java学习笔记-1
- java虚拟机学习笔记
- java虚拟机学习笔记
- java虚拟机学习笔记
- Java学习笔记1
- Java学习笔记2
- java学习笔记(1)
- java学习笔记#2
- java学习笔记1
- java 学习笔记
- Serializable与Parcelable
- SWFupload+servlet 实现多图片上传
- 关于表的级联更新和删除
- 深刻理解Python中的元类(metaclass)
- Win7、Ubuntu双系统正确卸载Ubuntu系统
- java学习笔记
- ios中创建可以拖动的view原理和实现详解(含代码)
- Asp.Net页面字体(简体丶繁体)自动转换
- post和get请求方式以及区别
- VS 中配置使用Visual SVN系列 四:SVN Server配置和使用
- image 标签能提交表单???
- 华尔街日报称索尼电子将停止赞助世界杯
- Struts2 Action 获取被call的url
- elasticSearch配置文件中需要注意的地方