编码练习——Java-6-类的高级特性

博客新址: http://blog.xuezhisd.top
邮箱:xuezhisd@126.com


基础代码

  • 定义抽象类
abstract class Fruit {
	public String color;
	public Fruit() {
		color = "绿色";
	}
}
  • 定义抽象方法
    • 抽象类:Fruit
    • 抽象方法:harvest()
public class Test {
	public static void main(String[] args) {
		System.out.println("调用Apple类的harvest()方法的结果是:");
		Apple apple = new Apple();
		apple.harvest();
		System.out.println("嗲用Orange类的harvest()方法的结果是:");
		Orange orange = new Orange();
		orange.harvest();
	}
}

abstract class Fruit {
	public String color;
	public Fruit() {
		color = "绿色";
	}
	public abstract void harvest();	//抽象方法
}

class Apple extends Fruit {
	@Override
	public void harvest() {
		System.out.println("苹果已经收获!");
	}
}
  • 成员内部类
public class OuterClass {
	innerClass in = new innerClass();
	public void ouf() {
		in.inf();
	}
	class innerClass {
		innerClass() {
		}
		public void inf() {
		}
		int y =  0;
	}
	public innerClass doit() {
		in.y = 4;
		return new innerClass();
	}
	
	public static void main(String[] args) {
		OuterClass out = new OuterClass();
		//内部类的对象实例化操作必须在外部类或外部类中的非静态方法中实现
		OuterClass.innerClass in = out.doit();
		OuterClass.innerClass in2 = out.new innerClass(); //实例化内部类对象
	}
}
  • 获取内部类和外部类的引用
public class OuterClass {
	private int x;
	private class Inner {
		private int x=9;
		public void doit(int x) {
			x++;	//调用形参x
			this.x++;	//调用内部类的变量
			OuterClass.this.x++;	//调用外部类的变量x
		}
	}
}
  • 局部内部类
public class SellOutClass {
	private String name;
	public SellOutClass() {
		name = "苹果";
	}
	public void sell(int price) {
		class Apple{
			int innerPrice=0;
			public Apple(int price) {
				innerPrice = price;
			}
			public void price() {
				System.out.println("现在开始销售" + name);
				System.out.println("单价为:" + innerPrice + "元");
			}
		}
		Apple apple = new Apple(price);
		apple.price();
	}
	public static void main(String[] args) {
		SellOutClass sample = new SellOutClass();
		sample.sell(100);
	}
}
  • 匿名内部类
public class OutString {
	public static void main(String[] args) {
		final String sourceStr = "吉林省 明日 科技有限公司 —— 编程 词典!";
		IStringDeal s = new IStringDeal() {	//匿名内部类
			@Override
			public String filterBlankChar() {
				String convertStr = sourceStr;
				convertStr = convertStr.replaceAll(" ", "");
				return convertStr;
			}
		};
		System.out.println("源字符串:" + sourceStr);
		System.out.println("转换后的字符串:" + s.filterBlankChar());
	}
}

interface IStringDeal { 
	public String filterBlankChar();
}
  • 静态内部类
public class StaticInnerClass {
	static int x = 100;
	static class Inner {
		static void doitInner() {
			System.out.println("外部类的成员变量"+x);
		}
		public static void main(String[] args){
			doitInner();
		}
	}
}
  • 内部类的继承
public class OutputInnerClass extends ClassA.ClassB {
	public OutputInnerClass(ClassA a) {
		a.super();
	}
}

class ClassA {
	class ClassB {
		
	}
}
  • 实例 - 静态内部类求极值
public class Test {
	public static void main(String[] args) {
		double[] array = new double[5];
		for (int i=0; i<array.length; i++) {
			array[i] = 100*Math.random();
		}
		System.out.println("源数组:");
		for(int i=0; i<array.length; i++) {
			System.out.print(array[i] + "  ");
		}
		System.out.println();
		System.out.println("最大值:" + MaxMin.getResult(array).getMax());
		System.out.println("最小值:" + MaxMin.getResult(array).getMin());
	}
}

class MaxMin {
	public static class Result {
		private double max;
		private double min;
		public Result(double max, double min) {
			this.max = max;
			this.min = min;
		}
		public double getMax() {
			return max;
		}
		public double getMin() {
			return min;
		}
	}
	public static Result getResult(double[] array) {
		double max = Double.MIN_VALUE;
		double min = Double.MAX_VALUE;
		for (double i : array) {
			if (i>max)
				max = i;
			if (i<min)
				min = i;
		}
		return new Result(max, min);
	}
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
园丁浏览器是一款专门为教师开发的专用软件。软件不用注册,最高权限账号:系统管理员 初始密码:000 功能特点简介:软件不用注册,最高权限账号:系统管理员 初始密码:000 1、《安全性》:个人通讯录,证件信息,获奖情况以本地数据库方式保存,且必须有密码才能使用。 2、《在校生证明》:全自动打印,可单张,可批量自动打印,泡茶。。。安心取证! 3、《常用办公软件》:便捷打开。浏览器也是一个软件,WORD、  EXCEL、 PPT、 我的电脑可直接打开,不需要再切换,让您的桌面的这些WORD等图标清除掉,提高开机运行速度。 4、《教育网收录》:厦门教育网、人事网、招生考试。。。便捷打开! (集美区教育局,进修学校的网址不稳定,稳定后下个版本会添加上) 5、《专用网站工具》:拒绝广告与网页病毒。提供大量常用工具查询:万年历、歇后语、天气预报、快递查询、邮编查询、地图查询、身份证号码查询。。。完全满足日常需要。 6、《文字排版工具》:有没有经历过在网页上复制文字到WORD时,WORD停止不动,等了N久。。。结果,郁闷,WORD得到的是乱码?? 这个工具,可以清除这些问题!还附带计算字数,自动简单排版。。。 7、《便捷在线音乐》:酷我、百度随身听和一听,不需要查找,不需要百度搜索,便捷打开音乐名站,想听就听! 8、《搜罗网购电商名站》:快捷,随时可用,不需要收藏夹。有淘宝、拍拍。。。 收录了作者常用的网上的一个“就爱折”网!“即时更新集合淘宝和拍拍网促销打折信息的平台网站” 交易是在淘宝和拍拍,无安全隐患。 9、《园丁社区》:可开通片区教研(比如灌口片区)、班级家长交流区、作文参考、论文资源、教案案例。。等等,这些将陆续集合精选教学与学生学习资源。有教学专属的自留地。 10、《我的文档》:我的功课表、记事计划、证件信息、获奖信息。 11、《班主任管理》:暂时提供期末要用的《成绩总表》。项目有:自动生成成绩总表各率,同时自动生成各单科成绩表。 12、WORD修复:经常有WORD使用过程出错,打不开WORD软件,本功能提供修复。 13、EXCEL宏毒清理:运用很简单的办法,清理WINXP系统下的宏程序。 14、基层报表312自动生成:不再需要班主任和教务主任那么辛苦的去分析统计每个年班中,每个性别每个年龄阶段有多少人,有多少个少数民族。。。  这些全自动生成,傻瓜化的导入花名册,就要以泡茶再数据填报! (因为涉及学生太多信息,安全措施为:数据在本地,而且有加密U盘机制,不怕泄漏) 15、《文化户口册数据五大表统计》:仅需手工判断就读区域,其它五大表数据全自动生成! 16、《我的电脑》可以软件中管理我的电脑,不需要切换到桌面,同时,支持不用打开WORD EXCEL 文件就能预览开头材料,选定后再打开。省切找资料时一个一个打开的麻烦。 17、《安全维护》(需要账号,他人用不了): 有数据备份与恢复功能; 清除所有数据功能; 删除EXCLE花名册; 18、办公中心: 1)校历表、办公材料(分有通知管理、职称文件、教学工作、德育工作、班主任、安全、师资等等,为您整合有序的业务材料管理) 2)个人中心:细化获奖情况(论文、指导学生及综合) 3)整合资源,增加我的助手。 4)增加网络收藏夹,让您在校在家,及出差在外,都可共享自己的收藏夹。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值