知识点(慢慢更新..break,continue,return 重载和重写的区别)

目录

一. break,continue,return用法和含义 

1. break

2. continue

3. return

4. 总结

二、重载和重写的区别

1. Overload 重载

2. Override 重写

语法规则:

手动重写Object类的方法:

重载重写的区别:


一. break,continue,return用法和含义 

1. break

break用于完全结束一个循环,跳出循环体,执行循环后面的语句。

使用场合主要是switch语句和循环结构。

● 在循环结构中使用break语句,如果执行了break语句,那么就退出循环.

 for (int i = 0; i < 10; i++) {
			if (i == 7) {
				break;
				// 在执行i==7时强制终止循环,i==7不会被执行
			}
			System.out.print(i + " ");
		}

●如果在多重嵌套循环中使用break语句,当执行break语句的时候,退出的是它所在的循环结构,对外层循环没有任何影响。

// 外循环,循环5次
		for (int i = 0; i < 5; i++) {
			System.out.print("第" + (i + 1) + "次循环:");
			// 内循环,设计为循环10次
			for (int j = 0; j < 10; j++) {
				// 判断j是否等于3,如果是,则终止循环
				if (j == 3) {
					break;
				}
				System.out.print("内循环的第" + (j + 1) + "次循环\t");
			}
			System.out.println();
		}

●如果循环结构里有switch语句,并且在switch语句中使用了break语句,当执行switch语句中的break语句时,仅退出switch语句,不会退出外面的循环结构

for (int i = 0; i < 10; i++) {
			System.out.print("第"+i+"次循环: ");
			switch (i) {
			case 7:
				System.out.print("跳出switch ");
				break;
			default:
				System.out.print("switch"+i + " ");
				break;
			}
			System.out.print("for循环"+i + " ");
			System.out.println();
		}

2. continue

终止当前循环,但是不跳出循环

//continue ---跳出本次循环 执行下一次循环
		for (int i = 0; i <=10; i++) {
			if ((i&1)==1) {
				continue;
			}
			System.out.print(i);//0246810
		}

●break和continue关键字,操作的是当前离他最近的循环

●操作外层循环,别名标识     名字:  --- 同变量名命名方法

//break和continue关键字,操作的是当前离他最近的循环,
		//操作外层循环,别名标识
		out:for (int i = 0; i < 10; i++) {
			inner:for (int j = 0; j < 10; j++) {
				if(j==3) {
					//break out;
					continue out;
				}
				System.out.print(i+"_"+j+"  ");
			}
			System.out.println();
		}

3. return

 return语句可以使其从当前方法中退出,返回到调用该方法的语句处,继续程序的执行。

用法:

●在有返回值的方法中,返回方法指定类型的值,同时结束方法执行;

public static void main(String[] args) {
		System.out.println(test2());
		}
	  public static String test2(){
	        System.out.println("--有返回值类型的return语句测试--");
	        return "返回一个字符串";
	    }

●也可以用在返回值为void的方法中,用来终止方法运行;

比如主方法:

public class Demo01{
    public static void main(String[] args) {
        for (int i = 0;i < 10;i++){
            if (i == 5){
                return;
            }
            System.out.println(i);
        }
        System.out.println("stop");
    }
}

4. 总结

●return :直接跳出当前的方法,返回到该调用的方法的语句处,继续执行

●break:在循环体内结束整个循环过程

●continue :结束本次的循环,直接进行下一次的循环


二、重载和重写的区别

1. Overload 重载

        在一个类中,我们可以定义多个方法。如果有一系列方法,它们的功能都是类似的,只有参数有所不同,JavaOOP的语法允许把这一组方法名定义为同名方法。

●方法的重载:在同一个类中,方法名相同,参数项不同(类型,个数,顺序)

●和返回值无关,发生在编译期

//方法的重载:在同一个类中,方法相同,参数项不同(类型,个数,顺序)
		//和返回值无关,发生在编译器
		double a = add(10.0, 20);
		System.out.println(a);//30.0

	}

	public static int add(int a, int b) {
		return a + b;
	}

	public static double add(int a, double b) {
		return a + b;
	}

	public static double add(double a, int b) {
		return a + b;
	}

	public static double add(double a, double b) {
		return a + b;
	}

2. Override 重写

在继承关系中,子类如果定义了一个与父类方法签名完全相同的方法,被称为重写(Override)

语法规则:

在子类和父类中有方法名完全一致,返回值类型相同的方法

●发生在子类和父类中,如果父类所提供的方法不能满足子类的需求,则子类可以重写
●方法名相同,参数项相同,返回值也相同,子类的修饰符>=父类的修饰符,方法体不同

   返回值:子类重写的方法的返回值范围可以小于父类的方法的返回值范围

父类:

class Person {
    public void run() {
        System.out.println("Person.run");
    }
}

子类: 在子类Student中,重写这个run()方法

class Student extends Person {
    @Override
    public void run() {
        System.out.println("Student.run");
    }
}


手动重写Object类的方法:

在Java中,所有的class类最终都继承自Object,而Object定义了几个重要的方法

@Override
	public String toString() {
		return "姓名" + name + "身份证号:" + cardId;
	}

	// equals 只能用在引用数据类型上
	// object中的equals方法比较的是两个对象的地址是否相同,String类比较的是内容是否相同(因为其重写了equals方法)
	// 如果自己想要看内容是否相同 重写equals方法
	@Override
	public boolean equals(Object obj) {
		// 1.先比较地址是否相同
		if (this == obj) {
			return true;
		}
		// 2.先判断是否是Person类型
		if (obj instanceof Person) {
			// 向下转型
			Person p1 = (Person) obj;
			return this.name.equals(p1.name) && this.cardId.equals(p1.cardId);
		}
		return false;
	}

	// 地址改成了属性的地址和
	// 如果两个对象的属性完全相同 则hashCode值也完全相同
	@Override
	public int hashCode() {
		return name.hashCode()+cardId.hashCode();
	}

重载重写的区别:

N区别重载重写
1概念方法名称相同,参数的类型及个数不同方法名称、返回值类型、参数的类型及个数完全相同
2范围一个类继承关系
3限制没有权限要求被重写的方法不能拥有比父类更严格的访问控制权限


待更新...

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冯诺依曼转世

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值