1.分析运行结果题

/*** @author: 程序员飞扬* @description:*/
public class Car {double price = 10;static String color = "white";public String toString(){return price + "\t" +color;}public Car(){this.price = 9;this.color = "black";}public Car(double price){this.price = price;}
}
/*** @author: 程序员飞扬* @description:*/
public class HomeWork01 {public static void main(String[] args) {Car car = new Car();Car car1 = new Car(100);System.out.println(car);System.out.println(car1);}
}

2.编程题,考察静态属性,类加载

/*** @author: 程序员飞扬* @description:*/
public class Frock {private static int currentNum = 10000;private int serialNumber;public static int getNextNum(){currentNum +=100;return currentNum;}public Frock() {this.serialNumber = getNextNum();}public int getSerialNumber() {return serialNumber;}
}
/*** @author: 程序员飞扬* @description:*/
public class TestFrock {public static void main(String[] args) {/*System.out.println(Frock.getNextNum());System.out.println(Frock.getNextNum());*/Frock frock = new Frock();System.out.println(frock.getSerialNumber());Frock frock2 = new Frock();System.out.println(frock2.getSerialNumber());Frock frock3 = new Frock();System.out.println(frock3.getSerialNumber());}
}

输出:

10100

10200

10300

3.编程题,考查抽象类的使用

/*** @author: 程序员飞扬* @description:*/
public abstract class Animal {void shout() {}
}
/*** @author: 程序员飞扬* @description:*/
public class Cat extends Animal{@Overridevoid shout() {System.out.println("猫会喵喵叫");}
}
/*** @author: 程序员飞扬* @description:*/
public class Dog extends Animal{@Overridevoid shout() {System.out.println("狗汪汪叫");}
}
/*** @author: 程序员飞扬* @description:*/
public class HomeWork03 {public static void main(String[] args) {Cat cat = new Cat();cat.shout();Dog dog = new Dog();dog.shout();}
}

输出:

猫会喵喵叫

狗汪汪叫

4.编程题,考查匿名内部类的使用

/*** @author: 程序员飞扬* @description:*/
public interface Calculator {double work(double n1, double n2);
}
/*** @author: 程序员飞扬* @description:*/
public class CellPhone {public void testWork(Calculator calculator,double n1,double n2){double result = calculator.work(n1,n2);System.out.println("计算后的结果:" + result);}
}
/*** @author: 程序员飞扬* @description:*/
public class HomeWork04 {public static void main(String[] args) {CellPhone cellPhone = new CellPhone();cellPhone.testWork(new Calculator() {@Overridepublic double work(double n1, double n2) {return n1 + n2;}},10,20);//lambda表达式写法,后面介绍CellPhone cellPhone2 = new CellPhone();cellPhone2.testWork((n1,n2) -> {double result = n1 +n2;return result;}, 10,20);}
}

输出:

计算后的结果:30.0

计算后的结果:200.0

计算后的结果:30.0

5.编程题,考查内部类的属性访问

/*** @author: 程序员飞扬* @description:*/
public class HomeWork05 {public static void main(String[] args) {A a = new A();a.f1();}
}class A{private String NAME = "hello";public void f1(){class B{private final String NAME="小明";public void show(){System.out.println("内部类:" + NAME);System.out.println("外部类:" + A.this.NAME);}}B b = new B();b.show();}
}

6.编程题,考查单例、类型转换、工厂模式

/*** @author: 程序员飞扬* @description:创建一个交通工具类接口,有work方法*/
public interface Vehicles {public void work();
}/*** @author: 程序员飞扬* @description:Horse类*/
public class Horse implements Vehicles{@Overridepublic void work() {System.out.println("骑马。。。");}
}/*** @author: 程序员飞扬* @description:Boat类*/
public class Boat implements Vehicles{@Overridepublic void work() {System.out.println("驾船。。。");}
}/*** @author: 程序员飞扬* @description:Person类,有name和vehicles属性*/
public class Person {private String name;private Vehicles vehicles;public Person(String name, Vehicles vehicles) {this.name = name;this.vehicles = vehicles;}//过河方法public void passRiver(){if(!(vehicles instanceof Boat)){//如果当前工具不是船或者为空,就先从工厂类获得船vehicles = VehiclesFactory.getBoat();}vehicles.work();}//一般方法public void common(){if(!(vehicles instanceof Horse)){//如果当前工具不是马或者为空,就先从工厂类获得马vehicles = VehiclesFactory.getHorse();}vehicles.work();}
}/*** @author: 程序员飞扬* @description:*/
public class HomeWork06 {public static void main(String[] args) {Person person = new Person("唐僧",new Horse());person.common();person.passRiver();person.common();person.common();person.passRiver();}
}

输出:

骑马。。。

驾船。。。

骑马。。。

骑马。。。

驾船。。。

7.编程题,考查内部类(成员内部类)

/*** @author: 程序员飞扬* @description:*/
public class HomeWork07 {public static void main(String[] args) {Car2 car2 = new Car2(20);car2.new Air().flow();car2.setTemparature(-5);car2.new Air().flow();car2.setTemparature(45);car2.new Air().flow();}
}class Car2{private double temparature;public Car2(double temparature) {this.temparature = temparature;}class Air{public void flow(){if(temparature>40){System.out.println("吹冷风。。。");}else if(temparature<0){System.out.println("吹热风。。。");}else{System.out.println("关闭空调");}}}public double getTemparature() {return temparature;}public void setTemparature(double temparature) {this.temparature = temparature;}
}

8.编程题,考察枚举类的使用

/*** @author: 程序员飞扬* @description:*/
public class HomeWork08 {public static void main(String[] args) {Color green = Color.GREEN;green.show();switch (green){case RED:System.out.println("红色");break;case Blue:System.out.println("蓝色");break;case GREEN:System.out.println("绿色");break;default:System.out.println("未匹配到");}}
}enum Color implements IEnum{RED(255,0,0),Blue(0,0,255),Black(0,0,0),YELLOW(255,255,0),GREEN(0,255,0);private int redValue;private int greenValue;private int blueValue;Color(int redValue, int greenValue, int blueValue) {this.redValue = redValue;this.greenValue = greenValue;this.blueValue = blueValue;}public int getRedValue() {return redValue;}public int getGreenValue() {return greenValue;}public int getBlueValue() {return blueValue;}@Overridepublic void show() {System.out.println("红:" + redValue);System.out.println("蓝:" + blueValue);System.out.println("绿:" + greenValue);}
}interface IEnum{void show();
}

Java筑基18-布置作业啦(考查抽象类、内部类、工厂模式等)相关推荐

  1. 工厂设计模式(java版本、spring源码中使用的工厂模式)

    最近在学习spring源码,发现在IoC容器初始化的时候创建各种bean,然后在代码中看到各种beanFactory和factoryBean,很显然spring容器在创建bean的过程是使用了工厂设计 ...

  2. Java筑基22-布置作业啦(String练习)

    目录 一.String翻转 二.注册参数校验 三.字符串格式化输出 四.统计字符串 五.内存分析 一.String翻转 /*** @author: 程序员飞扬* @description:字符串翻转* ...

  3. java中的工厂模式

    一.工厂模式介绍 工厂模式专门负责将大量有共同接口的类实例化.工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类. 工厂模式的几种形态: (1)简单工厂(Simple Factor ...

  4. JAVA设计模式之工厂模式讲解

    目录 前言 开始表演 前言 Java中使用工厂模式的主要原因是为了实现代码的灵活性和可维护性.工厂模式是一种创建型设计模式,它提供了一种将对象的创建和使用进行分离的方式.具体来说,工厂模式可以将对象的 ...

  5. 工厂模式 java 电脑配件_1.Java设计模式-工厂模式

    1.简单工厂模式(Factory Method) 常用的工厂模式是静态工厂模式,利用static修饰方法,作为一种类似于常见的工具类Utils等辅助效果,一般情况下工厂类不需要实例化. //1.定义一 ...

  6. java 面向对象经典例题——教师,学生,家长。教师布置作业给学生和家长。

    题目: 教师,学生,家长.教师布置作业给学生和家长.每当教师布置一个道题时,就要自动通知到所有的学生和家长把该题记下来,然后在布置下一道题.要求程序扩展性,新学生或者家长可以随时加入这个班级,可以随时 ...

  7. 教师布置作业给学生和家长-Java

    教师布置作业给学生和家长-Java 题目:教师,学生,家长.教师布置作业给学生和家长.每当教师布置一个道题时,就要自动通知到所有的学生和家长把该题记下来,然后在布置下一道题.要求程序扩展性,新学生或者 ...

  8. 2018北语c语言程序2答案,北语21春《JAVA语言程序设计》作业2题目【标准答案】...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 加VX513274704 21春<JAVA语言程序设计>作业2 试卷总分:100 得分:100 一.单选题 (共 20 道试题,共 100 分 ...

  9. 奥鹏教育微学吧JAVA答案_西交20秋《Java语言》在线作业【标准答案】

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 西交<Java语言>在线作业 试卷总分:100 得分:100 一.单选题 (共 30 道试题,共 60 分) 1.给出下面代码,关于该程序以下 ...

最新文章

  1. Java编程笔试时输入问题:如何输入固定长度、不定长度的一维数组?如何输入固定长度、不定长度的二维数组?
  2. 【时间序列】使用 Auto-TS 自动化时间序列预测
  3. ajax如何提交多表单的值_Java Web初学者探索学习笔记7—矛盾解决方案:表单标签验证与ajax提交...
  4. SAP CRM Contact和Account的从属关系
  5. vue路由匹配实现包容性_包容性设计:面向老年用户的数字平等
  6. Java-Arrays类
  7. 高清壁纸:60款可爱的圣诞节电脑桌面壁纸《下篇》
  8. ffmpeg 花屏的问题
  9. Guava的介绍与使用示例
  10. [收藏]JDBC学习笔记
  11. 计算机等级考试——四级网络工程师考试大纲
  12. 今晚8:00 | 杜克大学计算进化智能中心(CEI Lab)—— 高效鲁棒深度学习专题!...
  13. python怎么安装jieba库这个模块 No module named ‘jieba‘ python3.7
  14. 设计一个圆形文字LOGO
  15. 人性的弱点 终极总结
  16. c语言中字符进行按位与,c语言位运算符的用法
  17. python 爬取抖音个人分享页面信息保存到数据库
  18. 【低代码开发】智慧水务解决方案
  19. J-Link仿真器与JTAG和SWD下载与接线介绍
  20. 减持后大笔收购,汽车之家为何让中国平安又爱又恨?

热门文章

  1. 分段模糊隶属度的自定义python函数(线性插值原理)
  2. 华为推送 坑点 自定义intent
  3. 计算机音乐nevada,Nevada
  4. VI,NDVI,EVI
  5. win10 GTX1060 安装CUDA+PyTorch GPU
  6. 托疫情的“福”,和儿子一起过了个暑假
  7. Python---项目(简易画图软件)
  8. 平板用电容笔还是触控笔?双十一值得买电容笔推荐
  9. 邮件解析引擎FastMail库大功告成!
  10. 第四届互联网+市赛后总结