main方法详解---接口练习

抽象类:类的一种。用abstract 关键字修饰类,不能直接创建对象,但是可以有构造器,用于子类继承后使用。
抽象方法:用abstract关键字修饰的方法,没有方法体,必须子类重写。
final关键字
修饰变量:变为变量,类中可以在构造器中赋值,接口中必须在声明时进行赋值,后续无法修改
修饰方法:变为最终方法,子类只能调用,不能重写;
修饰类:变为最终类,不能被其他类继承,例如String
**接口:**它和类是统一级别的存在,都是引用数据类型
接口没有构造器,不能直接new 对象
接口中的变量都是公开的静态的常量,public static final修饰
接口中的方法都是抽象方法(不考虑1.8新特性)
使用接口时需要提供一个类去实现接口,用到一个关键字implements ,实现类必须重写抽象类中的方法
接口可以有多个实现类 ,一个类可以实现多个接口;一个 类只能继承一个类,一个类可以有多个子类
比较器:
内部比较器:Comparable ,java .lang 包,compareTo(T t)
外部比较器:Comparator java.util 包, compare(T t H h);

分析main方法

public static void main(String[] args) {方法体}

猜数字练习

Number.java
public class Number {

	private int num;
	public Number() {
		super();
		this.num =(int)(Math.random()*100+1);
	}
	public int getNum() {
		return num;
	}
	public void setNum(int num) {
		this.num = num;
	}
	public boolean guess(int num){
		if (num>this.num){
			System.out.println("抱歉,太大了");
			return false;
		}else if(num<this.num){
			System.out.println("抱歉太小了");
			return false;
		}else{
			System.out.println("恭喜你猜中了");
			return true;
		}
	}
}

main.java

public class Test {
/*
 * 定义一个类,有一个数字属性,int num ,在构造器中对数字进行初始化
 * 要产生1-100 的随机数
 * 提供一个方法,用于用户使用进行猜数字,要接受用户输入 的一个数字,判断大小
 * 如果用户输入
 */
	public static void main(String[] args) {
		Number number=new Number();
		Scanner scanner=new Scanner(System.in);
		while(true){
			System.out.println("请输入1-100之间的数");
			int nextInt = scanner.nextInt();
			boolean guess = number.guess(nextInt);
			if(guess==true){
				break;//猜中,结束循环
			}else{
				continue;
			}
		}
	}
}

猜数字练习优化

public class Number {
	private int num;
	public Number() {
		super();
		this.num =(int)(Math.random()*100+1);
	}
	public int getNum() {
		return num;
	}
	public void setNum(int num) {
		this.num = num;
	}
	//数字判定
	private boolean guess(int num){
		if (num>this.num){
			System.out.println("抱歉,太大了");
			return false;
		}else if(num<this.num){
			System.out.println("抱歉太小了");
			return false;
		}else{
			System.out.println("恭喜你猜中了");
			return true;
		}
	}
//启动器
	public void start(Number number) {
		Scanner scanner=new Scanner(System.in);
		while(true){
			System.out.println("请输入1-100之间的数");
			int nextInt = scanner.nextInt();
			boolean result = number.guess(nextInt);
			if(result){
				break;//猜中,结束循环
			}else{
				continue;
			}
		}
	}
}
public class Test {
/*
 * 定义一个类,有一个数字属性,int num ,在构造器中对数字进行初始化
 * 要产生1-100 的随机数
 * 提供一个方法,用于用户使用进行猜数字,要接受用户输入 的一个数字,判断大小
 * 如果用户输入
 */
public static void main(String[] args) {
		//创建Number对象
		Number number=new Number();
		//启动猜数字
		number.start(number);
	}
}

抽象方法抽象类练习

统计程序运行时间

/*
 * 要求一定要被子类继承才能使用,用于记录某程序的运行时间
 */
public abstract class Timer {

	/*
	 * 被子类重写,用于定义要执行的代码 
	 */
	public abstract void proceed();
	//子类不能重写但是可以调用
	public final void start(){
		//记录起始时间
		long startTime=System.currentTimeMillis();
		//执行测试代码
		proceed();
		//记录结束时间
		long endTime=System.currentTimeMillis();
		//打印运行时长
		System.out.println("运行时长"+(endTime-startTime)+"ms");
	}
}
public class Test extends Timer {
	/*
	 * 设计一个类可以记录任何代码运行的时间 提示:抽象方法抽象类
	 * 模板方法设计模式
	 */
	@Override
	public void proceed() {
		for (int i = 0; i < 10000; i++) {
			System.out.println(i);
		}
	}

}
public static void main(String[] args) {
		Test test=new Test();
		test.start();
	}

接口练习

//求不同形状的面积和周长
定义形状接口,定义两个抽象方法:area(); length();
定义三角形,矩形类;实现形状接口,重写抽象方法
利用构造器 进行变量赋值


发布了23 篇原创文章 · 获赞 4 · 访问量 372

猜你喜欢

转载自blog.csdn.net/weixin_44804206/article/details/105364649