方法的重载、形参与实参、成员变量的封装、类的继承extends、方法的重写(override)、类对象的实例化过程、多态

本文探讨Java中的方法重载,讲解参数传递的特点,强调封装和隐藏在面向对象设计中的重要性。接着介绍类的继承extends,讲解方法的重写override,并通过实例解析类对象的实例化过程。最后,深入讨论多态性的概念,包括虚拟方法调用和多态的应用。
摘要由CSDN通过智能技术生成

一、方法的重载

* 重载的概念:
	在同一个类中,允许存在一个以上的同名方法,只要他们的参数个数或者参数类型不同即可。
* 重载的特点:
	与返回值无关,只看参数列表,且参数列表必须不同。(参数个数或参数类型)。调用时,根据方法参数列表的不同来区别。

重载实例:
//返回两个整数的和

int add(int x, int y){
   return x + y;}
//返回三个整数的和
int add(int x, int y, int z){
   return x+y+z;}
//返回两个整数的和 
double add(double x, double y){
   return x+y;}

练习:判断下列类是否是重载

与void show(int a, char b, double c){ } 构成重载的有:

a) void show(int x, char y, double z){ }		//不构成重载,因为3个参数类型相同,虽然参数名不相同。
b) int show(int a, double b, char c) { }			//构成重载,因为3个参数类型不同,(顺序位置不同即可)
c) void show(int a, double c, char b){ }		//构成重载,因为3个参数类型不同,(顺序位置不同即可)
d) boolean show(int c, char b){ }					//重载
e) void show(double c){ }							//重载
f) void shows(int x ,char y, double z){ }		//非重载
g) void shows() {double c}							//非重载,因为方法名不一样

练习:编写重载的类

* 编写程序,定义三个重载方法并调用。方法名为mOL。
- 三个方法分别接受一个int参数、两个int参数、一个字符串参数。分别执行平方运算并输出结果,输出字符串信息。
- 在主类main()方法中分别用参数区别调用三个方法
public class Test {
   	//类名的首字母要大写
	
	public static void main(String[] args){
   
		Test t = new Test ();
//		t.mOL(2);
//		t.mOL(3, 4);
//		t.mOL("方法重载mOL");
	}
		public void mOL(int i){
   
			System.out.println(i * i * i);
		}	
		
		public void mOL(int x, int y){
   
			System.out.println(x * y);
		}
		public void mOL(String s){
   
			System.out.println(s);
		}		
}
定义三个重载方法max(),第一个方法求两个int值中的最大值,第二个方法求两个double值中的最大值,并分别调用三个方法。
public class Test {
   	//类名的首字母要大写
	
	public static void main(String[] args){
   
		Test t = new Test ();
		t.max(3,4);
		t.max(5.5, 6.6);
		t.max(5, 6, 7);
	}
		public void max(int x, int y){
   
			System.out.println(x > y ? x : y);
		}	
		
		public void max(double x, double y){
   
			System.out.println(x > y ? x : y);
		}
		
		public void max(double m, double n, double k){
   
			System.out.println(m > n ? (m > k ? m : k):(n > k ? m : k));
		}		
}

体会可变个数的形参

* 下面采用数组形参来定义方法
	- public static void test(int a, String[] books);
* 以可变个数形参来定义方法
	- public static void test(int a, String...books);

说明:

1.可变参数:方法名参数部分指定类型的参数个数是可变多个
2.声明方式:方法名(参数的类型名....参数名)
3.可变参数方法的使用与方法参数部分使用数字组是一致的
4.方法的参数部分有可变形参,需要放在形参声明的最后 ,
	如 可以 public void printInfol(int i, String... args)
	但不可以 public void printInfol(String... args, int i)
public class Person {
   
	/**
	 * 用数组的方式来传递可变个数的参数
	 * 如果没有参数,就要定义一个空数组或者是null
	 * @param args
	 */

	public void printInfo(String[] args){
   
		
		for(int i = 0; i < args.length; i++){
   
			System.out.println(args[i]);
		}
	}
	/**
	 *用java特有的...的方式来传递可变个数的参数,这种参数在使用时与数组的使用方式相同
	 *如果没有参数就可以不填
	 *这种...代表可以传递0到多个参数
	 *如果一个方法有多个的形参(...这种的参数)一定要放在所有的参数最后
	 *可以 public void printInfol(int i, String... args)
	 *但不可以 public void printInfol(String... args, int i)
	 */
	public void printInfol(String...args){
   
		for(int i = 0; i < args.length; i++){
   
			System.out.println(args[i]);
		}
	}
}
public class Test {
   	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值