第七讲:面向对象编程(二)

2014-11-24 13:25:59 · 作者: · 浏览: 34

向前吧,荡起生命之舟,不必依恋和信泊,破浪的船自会一路开放常新的花朵。


本讲内容:成员变量、方法、方法的重载、构造函数

一、成员变量(类或对象的状态)
(1)、认识成员变量、类变量、实例变量、局部变量、方法参数之间的区别


1、成员变量(field)是没有定义在代码块(包括初始化块、成员方法)中的变量。成员变量是类变量还是实例变量取决于在其声明中是否使用了static关键字。
2、类变量在声明是用了static关键字,它的另一个名字叫静态变量、静态成员变量(static field) 。
3、实例变量是在声明时没有使用static关键字的成员变量,它的另一个名字叫非静态成员变量(non-static field)。
4、定义在代码块里的变量被称为局部变量(local variable)。
5、定义在方法声明中的变量叫方法参数。

区别如下:

public class text {
	static String s1 = "类变量";
	String s2 = "实例变量";
	{
		String s3 = "初始化代码块里的局部变量";
	}
	static {
		String s4 = "静态初始化代码块里的局部变量";
	}
	// s5方法的参数和方法里的局部变量
	public void printString(String s5) {
		String s6 = "方法里的局部变量";
	}
	// 静态类方法(可以直接被类名所调用)
	public static void printString() {
		String s7 = "类方法里的局部变量";
		System.out.println(s7);
	}
	public static void main(String[] args) {
		text.printString(); //直接被类名所调用静态类方法
		Lei08_1 a=new Lei08_1();//创建对象
		a.printString("参数的值");//调用实例方法
	}
}


(2)、变量的初始化
实例变量一经定义就会有初始值(默认的,第二讲讲到),局部变量定义时不赋初值而直接使用,编译器会报错

public class text {
	int i;
	{
		int j;
		System.out.println(j);//会报错
	}
	public static void main(String[] args) {
	}
}



二、方法(类或对象的行为)
Java中类的行为由类的成员方法来实现。类的成员方法由方法的声明和方法体两部分组成。

\

1、修饰符,可选,用于指定谁有权限访问此方法。
2、返回值类型,必选,用于指定该方法的返回值数据类型;如果该方法没有返回值,则要用关键字 void 进行标示。方法的返回值只能有一个。
3、参数列表,可以有0到多个,多个参数之间要用逗号隔开,参数的写法形如:String[] args, int age 这样。
4方法名,必选,命名规则是方法名和变量名的首字母要小写,不要弄个大写方法名出来。
5方法体,可选,
6、大括号,可选,大括号不写的方法叫抽象方法。


< http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+16LS4qO6yvTQ1LrNt723qNauvOS1xLnYz7U8YnI+CqGw17TMrNOwz+zQ0M6qo6zQ0M6q07DP7Ne0zKyhsaGjyOe5+8O/uPa21M/ztrzKx7TTzazSu7j2wODW0Mn6s8mz9sC0o6zDv7j2ttTP88jnufu2vNK7w/7Su9H5o6zEx8O01eK49srAvefKx7K7ysfMq87eyKTBy6GjztLDx7+0tb3Jz9K7vbK1xMD919PW0KOs0KG5t7XEtPPQocr00NTTsM/swcvL+73QtcS3vcq9oaPNqLn9yejWw7m3tPPQobXEt723qNPWuMSx5MHLy/y1xNe0zKyho9Xi0KnK9NDUus23vbeotcTPuL3ayc+1xLK7zay1vNbCwcujrLbg18u24LLKtcS21M/zo6zO0sPHuvPD5ru5u+G9srW9uPy24LXEvLzK9aOs0rK74bW81sK4/LbgtcS24NH50NShozxicj4KPC9wPgo8cD48YnI+CjwvcD4KPHA+PGJyPgrI/aGit723qNbY1Nggb3ZlcmxvYWQ8YnI+CtTaSmF2YSDW0NTK0O3A4Lao0uXW0LbguPa3vbeotcS3vbeow/vP4M2so6zWu9Kqy/zDx7XEss7K/cn5w/eyu82svLS/yaGj1eLW1sfpv/bPwqOsuMO3vbeovs2xu7PGzqrW2NTYo6hvdmVybG9hZGVkIKOpo6zV4tbWt73Kvb7NvdDX9re9t6jW2NTYo6htZXRob2Qgb3ZlcmxvYWRpbmcgo6mho7e9t6jW2NTYysfKtc/Ws8zQ8rbg0fnQ1LXE0ru49tbY0qrK1rbOoaPSsr/J0tSzxtf3tuDMrLXE0rvW1rHtz9a3vcq9oaM8YnI+CjwvcD4KPHA+PHByZSBjbGFzcz0="brush:java;">class Num{ public void max(int a,int b){ System.out.println(a>b a:b); } public void max(double a,double b){ System.out .println(a>b a:b); } public void max (int a,int b,int c){ int max=a>b a:b; System.out.println(max>c max:c); } } public class L6 { public static void main(String[] args) { Num a=new Num(); a.max(45, 3); a.max(3.2, 6.5); a.max(8, 9, 2); } }上面的例子说明了参数的个数,类型和顺序任意一项不同就算不同的参数声明


四、构造函数(即构造方法)
Java中,对象是构造出来的,特意用了一个new关键字来标示这个创建的过程。
\

class Lion{
	private String name;
	private int age;
	public Lion() {
		System.out.println("无参数构造方法");
	}
	public Lion(String name,int age){//有参数构造方法
		this.name=name;
		this.age=age;
		System.out.println("姓名:"+name+"\t年龄:"+age);
	}
}
public class L7 {
	public static void main(String[] args) {
		Lion a=new Lion();
		Lion b=new Lion("黎开权", 20);
	}
}
我们看到创建对象的过程就是执行构造函数的过程,而且也看到构造方法也可以重载。

注意:构造函数或者说构造方法,它不是方法。它们之间的三大区别
1、构造函数没有返回值

2、构造函数和类名相同

3、构造函数不能用final、static、abstract修饰


本讲就到这里,Take some time and enjoy it