java复习资料1
- 格式:doc
- 大小:62.50 KB
- 文档页数:15
1.面向对象和面向过程的语言
面向对象语言: java,c++,c#
核心:
封装
继承
多态
面向过程语言:C
面向过程的核心:
数据
数据结构
算法
2.类
1)什么是类:
类是一个抽象的概念,定义了某一些事物具有的共同的特征(包括静态和动态特征---状态和行为(属性和操作)---数据(变量)和方法)
2)如何定义类:
使用class关键词来定义JA V A类,一般一个类就单独的放在一个文件(后缀名为.java)
3)类里边包含数据和方法:
public class Circle {
//数据(属性)
int radiu;//半径----成员变量
int posX,posY;//圆中心坐标----成员变量
//方法(操作)
double getArea(){//获取面积----成员方法
return 3.14 * radiu * radiu ;
}
public static void changeV alue1(int i){ //成员方法(基本数据类型作为参数)
i +=5; //c = 8
}
public static void changeValue2(Circle c){//成员方法(引用型作为参数)
c.radiu = 100;
}
}
3.对象(实例)
1)使用new关键词产生对象(实例):
Circle c1 = new Circle(); //产生对象
c1.radiu = 2; //访问成员变量,给成员变量赋值
c1.posX = 1;
c1.posY = 1;
Circle c2 = new Circle();//产生对象
c2.radiu = 3;
c2.posX = 10;
c2.posY = 10;
2) 类是抽象的,不占用内存,而对象是具体的,占用存储空间.
对象类型(引用型)变量和基本数据类型的内存状态:(见图对象型内存空间分配)
3)引用类型和基本数据作为方法形参进行传值的不同:
Circle c = new Circle();
c.radiu = 2;
int i = 200;
changeValue1(i);
System.out.println(i);//输出为200---方法内改变基本数据类型的形参,不改变外边实参的值
changeVaule2(c)
System.out.println(c.radiu);//输出为100---方法内通过对象引用实际改变了对象的值
数组是引用类型,使用数组作为参数传递时,在方法内改变形参数组里边的值,实际上改变的就是实参的数组,如:
public class Test {
public static void changArray(int[] a3){//a3= a1
a3[1] = 4;
}
public static void main(String[] args) {
int[] a1={1,2,3};
changArray(a1);
//此时数组a1里的值为{1,4,3}
System.out.println(a1[0]+a1[1]+a1[2]);//8
}
}
4)对象的比较”相等“:
在比较对象是否“相等”时,要清楚想具体比较的什么是一样?
如果用==去比较对象,比较的是“引用“(是否是同一对象即为同一块内存空间)
Circle c1 = new Circle();
Circle c2 = new Circle();
if(c1 == c2) //结果为false,因为c1,c2是不同的对象
System.out.println("true");
else
System.out.println("false");
Circle c3 = c1;
if(c3 == c1) //结果为true,因为c1,c3是指向同一对象
System.out.println("true");
else
System.out.println("false");
if(c3 == c2) //结果为false
System.out.println("true");
else
System.out.println("false");
如果我们赋予”相等“这样的一个含义:如果圆半径一样,则认为这两个圆”相等“,这样赋予了特殊含义的”相等“,
在比较时不能使用”==“去比较,需要我们自定义方法去实现这个比较。
按照惯例这种比较通常是改写equals方法(留待学继承的时候再改写,如果不改写equals,从Object继承下来的equals效果同==)
5)对象型的数组:
可以定义一个对象型的数组来存放一组同一类型的对象:
Circle arr[];
arr = new Circle[5];
for(int i = 0; i < arr.length; i++){
arr[i] = new Circle();//产生Circle对象放到数组下标为i的位置}
//访问数组下标为2这个位置的Circle对象
arr[2].radiu = 100;
arr[2].posX = 100;
arr[2].posY = 100;
注意对象型数组内存的状态(见图“对象型数组内存”)
4.类的数据
成员变量:
定义的位置:类的里边,方法的外边。
访问方式:
作用范围:类本身里边都可以访问。类外边受访问控制符的影响。