标签:
1. 类和对象
面向对象的程序设计过程中,有两个重要概念:类(class)和对象(object,也被称作实例,instance),其中类是某一批对象的抽象,可以把类理解成某种概念;而对象才是一个具体存在的实例。
>> 定义类的语法如下:
[修饰符] class 类名
{
零个到多个构造器的定义
零个到多个成员变量
零个到多个方法
}
>> 构造器用于构造该类的实例,Java语言通过new关键字来调用构造器,从而返回该类的实例。
2. 方法
java中的方法不能独立存在,它必须属于一个类或一个对象,即所有方法都必须通过使用“类.方法”或者“对象.方法”的形式调用。使用static修饰的方法属于类本身,即既可以使用类作为调用者来调用,也可以使用对象作为调用者来调用。
>> 方法的参数传递机制
Java里方法的参数传递方式只有一种:值传递。就是将实际参数值的副本(复制品)传入方法内,而参数本身不会受到任何影响。此处举两个例子:
举例一:
public class Test {
public static void swap(int a, int b){
int tmp = a;
a = b;
b = tmp;
System.out.println("swap方法里,a的值是"+ a +"; b的值是" + b );
}
public static void main(String[] args) {
int a = 6;
int b = 9;
swap(a,b);
System.out.println("交换结束后,a的值是"+ a +"; b的值是" + b );
}
}
举例二:
class DataWrap{
public int a;
public int b;
}
public class Test2 {
public static void swap(DataWrap dw){
int tmp = dw.a;
dw.a = dw.b;
dw.b = tmp;
System.out.println("swap方法里,a Field的值是"+ dw.a +"; b Field的值是" + dw.b );
// dw = null;
}
public static void main(String[] args) {
DataWrap dw = new DataWrap();
dw.a = 6;
dw.b = 9;
swap(dw);
System.out.println("交换结束后,a Field的值是"+ dw.a +"; b Field的值是" + dw.b );
}
}
例子一的输出结果为:
swap方法里,a的值是9; b的值是6
交换结束后,a的值是6; b的值是9
例子二的输出结果为:
swap方法里,a Field的值是9; b Field的值是6
交换结束后,a Field的值是9; b Field的值是6
从上面的运行结果可以看出,在例子一中,main方法里的变量a和b,并不是swap方法里的a和b,而只是main方法里变量a和b的复制品。不过例子二的运行结果可能会让人产生误解:调用swap方法的就是就是dw对象本身,而不是它的复制品。其实不然,我们可以在swap方法的最后一行增加如下代码:dw = null;结果是运行结果并不受影响,可见main方法中的dw变量没有受到任何影响。
>>方法的重载与重写
方法重载:(两同一不同)同一个类中,方法名相同,参数列表不同。
方法重写:(两同两小一大)方法名相同,形参列表相同;子类方法返回值类型应比父类方法返回值类型更小或相等,子类方法声明抛出的异常类应比父类方法声明抛出的异常类更小或相等;子类方法的访问权限应比父类方法的访问权限更大或相等。
声明:本文是根据《疯狂Java讲义》整理得来的,仅作为学习过程中的一个记录总结,肯定有很多不完善的地方,还请批评指教。
标签:
原文地址:http://www.cnblogs.com/zwxc/p/4857227.html