欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

冒泡排序、继承、抽象类、方法重载

程序员文章站 2024-02-17 17:01:52
...

冒泡排序

冒泡排序是一种比较简单的排序算法,它循环走过需要排序的元素,依次比较相邻的两个元素,如果顺序错误就交换,直至没有元素交换,完成排序。

算法简介:

   1.比较相邻的元素,前一个比后一个大(或者前一个比后一个小)调换位置

   2.每一对相邻的元素进行重复的工作,从开始对一直到结尾对,这步完成后,结尾为做大或最小的数.

   3.针对除了最后一个元素重复进行上面的步骤。

   4.重复1-3步骤直到完成排序

动图演示:

冒泡排序、继承、抽象类、方法重载
代码实现:

int[] arr = {11,7,23,15,12,56,29};
		//要比较的轮数
		for(int x=0;x<arr.length-1;x++) {//每次要比较两个数,当前的数和后一个数,当比到最后一个的时候(当前),就不存下一个
			//控制次数
			for(int y=0;y<arr.length-1-x;y++) {
				//如果当前的值比后一个值大
				if(arr[y]>arr[y+1]) {
					//两两比较互换位置
					int temp = arr[y];
					//将后一个值覆盖前一个下标对应的值
					arr[y] = arr[y+1];
					arr[y+1] = temp;
				}
			}
		}
		//遍历排序后的数组
		for(int i=0;i<arr.length;i++) {
			System.out.println(arr[i]);
		}

冒泡排序、继承、抽象类、方法重载

继承

继承 :
就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。

好处
提高代码的复用性
类与类之间产生了关系

继承的格式
通过extends关键字,可以声明一个子类继承另外一个父类,定义格式如下:

	class 父类 {
		 ... 
	}
	class 子类 extends 父类 {
		 ....
	}

代码实现:

/**
 * 定义员工类Employee,做为父类
 * 
 */
public class Employee {
	String name; // 定义name属性
	
	// 定义员工的工作方法
	public void work() {
		System.out.println("尽心尽力地工作");
	}
}

/** 
 * 定义讲师类Teacher 继承 员工类Employee 
 * 
 */
class Teacher extends Employee { 
	// 定义一个打印name的方法
	public void printName() {
		System.out.println("name=" + name);
	}
}

/**
 * 定义测试类
 *
 */
public class ExtendDemo01 {
	public static void main(String[] args) { 
		// 创建一个讲师类对象 
		Teacher t = new Teacher(); 
		
		// 为该员工类的name属性进行赋值 
		t.name = "小明"; 
		
		// 调用该员工的printName()方法 
		t.printName(); // name = 小明 
		
		// 调用Teacher类继承来的work()方法
		t.work(); // 尽心尽力地工作
	}
}

冒泡排序、继承、抽象类、方法重载
super关键字:
super代表当前的父类对象,在子类中使用super可以调用父类的方法,属性和构造方法。

  1. 调用父类中的构造方法。
  2. 在子类中调用父类被覆盖的方法和属性。

抽象类

抽象方法,是指没有方法体的方法,同时抽象方法还必须使用关键字abstract做修饰。

而拥有抽象方法的类就是抽象类,抽象类要使用abstract关键字声明。

abstract class A{//定义一个抽象类
	
	public void fun(){//普通方法
		System.out.println("存在方法体的方法");
	}
	
	public abstract void print();//抽象方法,没有方法体,有abstract关键字做修饰
	
}

方法重载

方法重载:
在同一个类中,方法名相同,参数列表不同(参数位置、参数个数、参数类型),与返回值类型无关
方法重写:
在继承或实现的关系下,方法名相同,参数列表相同,返回值类型相同,子类的修饰符权限要大于或等于父类中的修饰符权限

方法重写的注意事项:

  •  1.父类中私有的方法不能被重写。
    
  •  	父类私有的方法不能被继承。
    
  •  2.子类重写父类的方法时,访问权限不能更低,最好保持一致。
    

什么情况下需要重写父类中的功能呢?

  • 当子类有自己的特殊实现形式时,此时就可以重写父类中的功能,如果没有特殊实现就不需要重写(此时的重写不是必须的)
class Phone{
	public void call(String name){
		System.out.println("给"+name+"打电话");
	}
}

class NewPhone extends Phone{
	public void call(String name){
//		System.out.println("给"+name+"打电话");
		super.call(name);
		System.out.println("可以听天气预报...");
	}
}

public class ExtendsDemo2 {

	public static void main(String[] args) {
		NewPhone np = new NewPhone();
		np.call("宝宝");
	}
	
}
相关标签: java 抽象类