近期学习了java的基础知识和对象技术并进行了编程练习,先对一些比较重要的知识点做些梳理:
1. Char:与c++的单字节char不同,java中的char为16位的unicode编码;
2. Java中的数据类型除基本数据类型外,还包括引用数据类型:类类型、接口类型、数组类型;
3. Eclipse下的注释方式同vc;
4. Java对多维数组的初始化及赋值也是比较宽松的,支持不同行有不同的列数,代码参考如下:
public class ex1 {
public static void main(String[] args){
int [][]a;
a=new int [3][];
for(int i=0;i<3;i++)
{
a[i]=new int[2*i+1];
for(int j=0;j<a[i].length;j++)
a[i][j]=j;
}
for(int i=0;i<3;i++)
{
for(int j=0;j<a[i].length;j++)
System.out.println(a[i][j]);
}
}
}
5. 对类的继承用extends,而对接口用implements;
6. 在对类实现多态时,若父类的成员函数是private类型,那么多态的实现是失败的;因为对于子类而言,父类的private函数在子类是不可见的,这样即使子类重写了该函数 的实现方法,多态也是无法实现的;
7. 抽象类:
1 抽象方法 abstract void f(); 抽象方法没有函数体;
2.如果一个类包含1个或者多个抽象类, 则该类必须限定为抽象的,需要在前面指定 abstract 关键字;
(1)抽象类不能被实例化
(2)包含抽象方法的类,必须标识 abstract
3.如果从一个抽象类继承, 必须对所有抽象方法进行覆盖 , 否则导出类也是抽象的;
4 抽象类中可以有非抽象方法;但含有抽象方法的类一定是抽象类;
5. 也可以考虑创建没有任何抽象方法的抽象类 。
8. 接口是更加纯粹的抽象类,其函数成员全部没有函数体,并且这些方法必须声明为public(或public abstract),即使不声明为public,接口中默认的访问属性也是public的;接口的默认属性是static final的;
9. 类对象创建过程:
1) 当使用new关键字生成类实例或类的静态成员首次被访问时,编译器会查找并定位该类文件;
2) 首先判断是否有static成员,如果有则对static成员进行初始化,且初始化只进行一次;
3) 为对象在heap上分配足够的存储空间,并自动把所有数据类型设置为默认值,如果是引用类型则设置为null;
4) 执行所用用户定义的初始化动作,如果用户没有设置初始值就采用初始值;
5) 调用构造函数,如果涉及到继承则先调用基类的构造函数然后是子类的构造函数;
10 package的创建,可参考http://blog.csdn.net/htyy521/article/details/1785417