JAVA的重写和重载详解及案例解析——JAVA系列四


JAVA的重写、重载、继承

基本内容介绍:

1.继承:是Java中两个类的代码存在大量重复的时候,我们采用将公共部分提取出来,作为一个新的类,并称之为父类,刚开始重复的类作为父类的子类,通过继承父类的方法和变量,以获取父类中的内容。
所以,继承是类和类之间的事!

2.重写:在父类和子类之间,当你在子类里面写到了和父类中同名,同返回值,同参数个数,同参数类型(总之哪哪都相同)的方法的时候,就实现了对父类这个方法的覆盖,即重写。子类对象调用的时候调用的是你重写过后的子类的方法,若还想要调用父类中原来的方法,则要用super.方法名的方法调用。

3.重载:是在一个类里面,多个方法的方法名相同,但是参数列表不同,返回值可同可不同,调用的时候根据你写的参数的情况识别调用相应的方法。实现类以同一方式处理不同数据。

4.多态性:同一个行为/方法,有不同的表现形式,使用不同的实例而有不同的操作。重写,接口,重载都是程序方法多态性的体现。


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、作业题目:

Exercice : classe des personnes

Question 1

Écrivez une classe permettant de représenter des personnes. Les
informations à représenter sont le prénom et le nom de la personne, son
numéro INSEE (numéro de sécu) et son numéro de téléphone.

La classe devra comporter un constructeur pour initialiser les instances
ainsi que des méthodes pour accéder aux différentes informations. Pour
ce qui est des modifications de données, on suppose que les noms,
prénoms et numéros INSEE ne changent jamais, mais qu’une personne peut
changer de numéro de téléphone. Il faut donc prévoir une méthode pour
cela. La classe comportera aussi une méthode toString renvoyant une
chaîne de caractère.

Question 2

Créez plusieurs objets représentant des personnes et changez leurs
numéros de téléphone.

Question 3

Ajoutez à la classe une méthode permettant de tester si deux personnes
ont le même nom de famille. Cette méthode ne doit pas faire d’affichage
mais elle doit renvoyer un résultat booléen. Ajoutez au programme une
invocation de méthode utilisant cette nouvelle méthode.
机翻:
问题1:

写一个类来表示人。对于要表示的信息是这个人的名字和名字INSEE号码和电话号码。类必须包含一个构造函数来初始化实例以及获取不同信息的方法。对于在数据更改方面,假定名称为INSEE的名字和号码永远不会改变,但一个人可以更改电话号码。因此,必须有一种方法这人。类还将包含一个toString方法,该方法引用字符串。

问题2:

创建几个表示人员的对象并更改它们电话号码。

问题3

在课堂上增加一种方法来测试两个人是否他们有相同的姓氏。这种方法不应该显示但它必须返回布尔结果。在节目中增加一个使用此新方法的方调用。

二、答案及解析

1.Q1

代码如下(示例):

public class Q1 {

		
		
		private String nom;
		private String prénom;
		private int sécu;
		private long télé;
		
		public void Set(String a,String b,int c,long d) {
			
			this.nom = a;
			this.prénom = b;
			this.sécu = c;
			this.télé = d;
		}
			
		public void Modifier(){
			
			Scanner sa = new Scanner(System.in);
			System.out.print("modifier le nom :");
			String c = sa.next();
			this.nom = c;
			
			Scanner sb = new Scanner(System.in);
			System.out.print("modifier le prénom :");
			String d = sb.next();
			this.prénom = d;
			
			Scanner s = new Scanner(System.in);
			System.out.print("modifier le sécu :");
			int a = s.nextInt();
			this.sécu = a;
			
			Scanner sc = new Scanner(System.in);
			System.out.print("modifier le télé :");
			int b = s.nextInt();
			this.télé = b;
			
				}
		
		public void show() {
			
			System.out.println("nom : "+nom.toString());
			System.out.println("prénom : "+prénom.toString());
			System.out.println("sécu : "+sécu);
			System.out.println("télé : "+télé);
			
		}
		
		
		public static void main(String[] args) {
			
			Q1 P = new Q1();  //调用方法前一定要先创建对象
			P.Set("yue", "Xu", 13, 1996530);
			P.show();
			
			Scanner sd = new Scanner(System.in);
			System.out.print("Vous voulez les modifier?(o/n) :");
			String cs = sd.next();
			if(cs.equals("o")) {  //根据输入的字符判断后续操作的语句,equals返回的是一个布尔值,可以用在需要布尔值的表达式里
				
				if(P.nom == "yue" && P.prénom == "Xu") {
				System.out.println("Avoir le pouvoir pour modifier!");
					
				P.Modifier();
				
			}
				else  
					System.out.print("Vous n'avez le droit! ");
			
			}
			
			P.show();
			
		}
}

在这里插入图片描述

2.Q2

代码如下(示例):

public class Q2 {
	
	private String nom;
	private String prénom;
	private int sécu;
	private long télé;
	
	public void Set(String a,String b,int c,long d) {
		
		this.nom = a;
		this.prénom = b;
		this.sécu = c;
		this.télé = d;
	}
		
	public void Modi(){
		
		Scanner sc = new Scanner(System.in);
		System.out.print("modifier le télé :");
		int b = sc.nextInt();
		this.télé = b;
		
			}
	
	public void show() {
		
		System.out.println("nom : "+nom);
		System.out.println("prénom : "+prénom);
		System.out.println("sécu : "+sécu);
		System.out.println("télé : "+télé);
		
	}
	
	
	public static void main(String[] args) {
		
		Q2 P1 = new Q2(); 
		P1.Set("yue", "Xu", 13, 1996530);
		P1.show();
		
		Q2 P2 = new Q2();
		P2.Set("yihang", "Lu", 11, 1855657);
		P2.show();
		
		Q2 P3 = new Q2();
		P3.Set("zhenghong", "Xu", 12, 1386523);
		P3.show();
		
		Q2 P4 = new Q2();
		P4.Set("mulan", "Ji", 13, 1350051);
		P4.show();
		
		Scanner sd = new Scanner(System.in);
		System.out.print("Vous voulez modifier leurs numéro de téléphone?(o/n) :");
		String cs = sd.next();
		if(cs.equals("o")) {
			Scanner s = new Scanner(System.in);
			System.out.print("Choisiez une personne(1~4) :"); //switch怎么输入P1
			int a = s.nextInt();
			switch (a) {
			case 1:
				P1.Modi();
				break;  //case语句的break不要忘记了!
			case 2:
				P2.Modi();
				break;
			case 3:
				P3.Modi();
				break;
			case 4:
				P4.Modi();
				break;
			default:
	            System.out.println("default");
	   
			}
			
		}
		P1.show();
		P2.show();
		P3.show();
		P4.show();
	}

}

在这里插入图片描述

3.Q3

代码如下(示例):

public class Q3 {

	 public String nom;
	 public String prénom;
	 public String sécu;
	 public String télé;
	
	public void Set(String a,String b,String c,String d) {
		
		this.nom = a;
		this.prénom = b;
		this.sécu = c;
		this.télé = d;
	}
	
	public static  boolean Comp(String p,String d) {
		
		if(p==d)
			
			return true;
		
		else
			
			return false;
	}
	
	public void show() {
			
			System.out.println("nom : "+nom);
			System.out.println("prénom : "+prénom);
			System.out.println("sécu : "+sécu);
			System.out.println("télé : "+télé);
			
		}
	public static void main(String[] args) {
		
		Q3 P1 = new Q3(); 
		P1.Set("yue", "Xu", "13", "1996530");
		P1.show();
		
		Q3 P2 = new Q3();
		P2.Set("yihang", "Lu", "11", "1855657");
		P2.show();
		
		Q3 P3 = new Q3();
		P3.Set("zhenghong", "Xu", "12", "1386523");
		P3.show();
		
		Q3 P4 = new Q3();
		P4.Set("mulan", "Ji", "13", "1350051");
		P4.show();
		
		Scanner sd = new Scanner(System.in);
		System.out.println("Choisiez deux personnes :");
		System.out.println("le premier :");
		int x = Integer.parseInt(sd.nextLine());
		Scanner sf = new Scanner(System.in);
		System.out.println("la deuxième :");
		int y = Integer.parseInt(sf.nextLine());
		
		String a = P1.prénom.toString();
		String b = P2.prénom.toString();
		String c = P3.prénom.toString();
		String d = P4.prénom.toString();
		
		String[] pnom = {a,b,c,d};
		String m = pnom[x];
		String n = pnom[y];
		
	
		if(Comp(m,n)) {
			System.out.print("ils ont le même nom de famille");
		}
		else
			System.out.print("ils n'ont pas le même nom de famille");
		
	}
}

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值