随着计算机革命的发展,不安全的编程方式逐渐成为编程代价昂贵的因素。
通过提供构造器,可以保证每个对象都得到初始化。
在static方法内部是没法调用非静态方法的,但是非静态方法是可以调用static方法的。static像全局方法一样,不被对象调用,被类调用。
关于静态,静态的内容有静态变量,静态方法,静态类。实际上讨论到静态方法即够了。
关于静态方法与实例方法,调用时,静态方法只能调用静态成员变量和静态方法,实例方法美欧限制。
静态方法意味着我在调用前不需要进行对其所属的类进行new操作,我主要会在工具类里面用到静态方法。
静态就是类的,实例就是对象的。
最大的区别在于内存。静态方法在程序开始时生成内存,实例方法在程序运行中生成内存,
所以静态方法可以直接调用,实例方法要先成生实例,通过实例调用方法,静态速度很快,但是多了会占内存。
一些情况下使用静态方法是有好处的,因为对于静态方法无论你有多少个实例,
内存中要维护的一份拷贝。同时,某些方法,确实使用静态是比较恰当的..
简单点说,静态方法用来执行无状态的一个完整操作,实例方法则相反,它通常是一个完整逻辑的一部分,并且需要维护一定的状态值。
数组是相同类型的用一个标识符名称封装在一起的对象序列或基本类型数据序列。
public class ArrayTest {
public static void main(String args[]){
//Here some ways of using array
//1
int[] a1={1,2,3,4,5};
int[] a2;
a2=a1;
for (int a:a2) {
System.out.println(a+1);
}
System.out.println("///");
//2,3
Integer[] a=new Integer[]{new Integer(3),new Integer(4),1,};
Integer[] b={new Integer(3),new Integer(4),1,};
System.out.println(Arrays.toString(a));
System.out.println(Arrays.toString(b));
}
}
/*
3
3
aaa
*/
可变数组:
public class VariableArrayTest {
//可变数组
public static void main(String args[]){
printArray(new Integer(3),3,"aaa");
}
static void printArray(Object...args){
for (Object o:args
) {
System.out.println(o);
}
}
}
/*
3
3
aaa
*/
public class EnumTest {
public static void main(String args[]){
Size a=Size.BIG;
//枚举方法自动写了toString方法
System.out.println(a);
//编译器还创建了ordinal方法,用来表示某个特定enum常量的生命顺序
//static value方法,用来按照enum常量的声明顺序,产生由这些常量值构成的数组
for(Size s:Size.values()){
System.out.println(s+" "+s.ordinal());
}
test(a);
}
//enum与switch是绝佳的组合
static void test(Size a){
switch (a){
case SMALL:
System.out.println("small");
break;
case MIDDLE:
System.out.println("middle");
break;
case BIG:
System.out.println("big");
break;
default:
System.out.println("error!");
}
}
}
/*
BIG
BIG 0
MIDDLE 1
SMALL 2
big
*/