第十章十一章作业

第十章十一章作业标题

  • 第十章十一章作业
    • 1.读代码
    • 2.使用静态变量和静态方法时实现产品的唯一序列号编号
    • 3.抽象类的使用:继承含含有抽象方法的抽象类的子类必须实现抽象类
    • 4.匿名内部类的使用
    • 5.局部内部类
    • 6.综合应用
    • 7.外部其他类访问成员内部类
    • 8.枚举的使用switch

1.读代码

创建子类对象时在类的调用顺序

  • 1.父类的静态代码块和静态属性初始化:优先级一样,按先后顺序调用
  • 2.子类的静态代码块和静态属性初始化:优先级一样,按先后顺序调用
  • 3.父类的普通代码块和普通属性初始化:优先级一样,按先后顺序调用
  • 4.父类的构造方法
  • 5.子类的普通代码块和普通属性初始化:优先级一样,按先后顺序调用
  • 6.子类的构造方法

2.使用静态变量和静态方法时实现产品的唯一序列号编号

package com.chapter10_11;/*** @author whj* @version 1.0*/
public class Homework02 {public static void main(String[] args) {System.out.println( Frock.getCurrentNum());System.out.println( Frock.getCurrentNum());Frock frock01 = new Frock();System.out.println(frock01.getSerialNumber());Frock frock02 = new Frock();System.out.println(frock02.getSerialNumber());Frock frock03 = new Frock();System.out.println(frock03.getSerialNumber());}
}
class Frock{private static int currentNum = 100000;//衣服序列号起始值private int serialNumber;//当前序列号public Frock() {this.serialNumber = getCurrentNum();}public static int getCurrentNum(){//获得序列号return currentNum += 100;}public int getSerialNumber() {return serialNumber;}
}

3.抽象类的使用:继承含含有抽象方法的抽象类的子类必须实现抽象类

package com.chapter10_11;/*** @author whj* @version 1.0*/
public class Homework03 {public static void main(String[] args) {Animal cat = new Cat();cat.shout();Animal dog = new Dog();dog.shout();}
}
abstract class Animal{abstract void shout();
}
class Cat extends Animal{@Overridevoid shout() {System.out.println("猫会喵喵叫");}
}
class Dog extends Animal {@Overridevoid shout() {System.out.println("狗会汪汪叫。");}
}

4.匿名内部类的使用

语法:new interface/class(){};//相当于直接创建了类的对象,该类实现了接口功能,或是对类继承,重写方法。

package com.chapter10_11;/*** @author whj* @version 1.0*/
public class Homework04 {public static void main(String[] args) {Cellphone cellphone = new Cellphone();cellphone.testWork(new IA() {//匿名内部类@Overridepublic void work() {System.out.println("功能是计算。");}});}
}
interface IA{void work();//接口的计算功能
}
class Cellphone  {public void testWork(IA ia){ia.work();//计算功能}
}

5.局部内部类

要求创建了外部类才能创建内部类

package com.chapter10_11;/*** @author whj* @version 1.0*/
public class Homework05 {public static void main(String[] args) {A a = new A();//先创建外部类A.B b = a.new B();//再创建内部类b.show();}
}
class A {private final String name = "zh";class B {private final String name = "whj";public void show(){System.out.println(A.this.name + name);}}
}

6.综合应用

  • 不同的交通工具实现接口功能

  • 工厂可以得到不同的工具

  • 人有名字和交通工具两种属性,通过调用不同的方法获得不同的工具,实现不同的功能。

public class Homework06 {public static void main(String[] args) {Person tang = new Person("唐僧", Factory.getHorse());tang.common();tang.passRiver();tang.passMountain();}
}
//人
class Person {private String name;private Vehicles vehicles;public Person(String name, Vehicles vehicles) {this.name = name;this.vehicles = vehicles;}public void common(){//普通情况使用马if (!(vehicles instanceof Horse)){vehicles = Factory.getHorse();}vehicles.work();}public void passRiver(){if (!(vehicles instanceof Boat)){vehicles = Factory.getBoat();}vehicles.work();}public void passMountain(){if (!(vehicles instanceof Plane)){vehicles = Factory.getPlane();}vehicles.work();}
}
//工厂
class Factory {//工厂,返回交通工具//马只有一个。使用饿汉式创建马的实例对象private static Horse horse = new Horse();//内部创建对象private  Factory() {//构造器私有化}public static Horse getHorse(){//返回一个可以获取内部对象的return horse;}public static Boat getBoat(){//但是船每次都不同return new Boat();}public static Plane getPlane(){//飞机都不同return new Plane();}
}//各个交通工具
class Plane implements Vehicles {@Overridepublic void work() {System.out.println("过火焰山时,使用飞机。。。");}
}
class Horse implements Vehicles {@Overridepublic void work() {System.out.println("一般情况,使用马儿。。。");}
}
class Boat implements Vehicles{@Overridepublic void work() {System.out.println("过河时,使用小船。。。");}
}
//接口
interface Vehicles {void work();
}

7.外部其他类访问成员内部类

  • 1.直接创建一个新的对象

  • 2.内部类所处的外部类暴露一个获取内部类的方法。

    package com.chapter10_11;/*** @author whj* @version 1.0*/
    public class Homework07 {public static void main(String[] args) {Car car = new Car(42.5);Car.Air air = car.new Air();//air 对象时固定的air.flow();System.out.println(air);car.setTemperature(-13);car.getAir().flow();System.out.println(car.getAir());car.setTemperature(13);air.flow();System.out.println(air);}
    }class Car {private double temperature;class Air {public void flow() {if (temperature > 40.0) {System.out.println("空调吹冷风。");} else if (temperature < 0.0) {System.out.println("空调吹暖风。");} else {System.out.println("空调关闭。");}}}public Car(double temperature) {this.temperature = temperature;}public double getTemperature() {return temperature;}public void setTemperature(double temperature) {this.temperature = temperature;}public Air getAir() {//每次都是创建新对象return new Air();}
    }
    

8.枚举的使用switch

switch()中,写入枚举对象,

在每个case之后,直接写上在枚举类中,当以的枚举对象即可。

package com.chapter10_11;/*** @author whj* @version 1.0*/
public class Homework08 {public static void main(String[] args) {Color color = Color.BLACK;color.show();switch (color) {case RED:System.out.println();case BLUE:System.out.println();default:System.out.println();}}
}
package com.chapter10_11;/*** @author whj* @version 1.0*/
public enum Color implements ShowColor{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;private 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 String toString() {return "Color{" +"redValue=" + redValue +", greenValue=" + greenValue +", blueValue=" + blueValue +'}';}@Overridepublic void show() {System.out.println("redValue=" + redValue +", greenValue=" + greenValue +", blueValue=" + blueValue );}
}

JAVA面向对象编程作业(Chapter10、11)相关推荐

  1. java面向对象编程基础

    java面向对象编程基础 前言:什么是java 是咖啡飘香的清晨 - 是斯坦福校园意浓情深 - 是James的思想睿智 是剁手党双十一挥舞的利刃 是大数据云计算驰骋的平台 - 是ATM上吐出的钞票 - ...

  2. 5.Java面向对象编程

    文章目录 05 Java面向对象编程 1. 面向过程与面向对象比较 2. 类和对象 2.1 对象的属性和方法 2.2 类的属性和方法 2.3 定义一个类 2.4 创建和使用对象 2.5 对象和类的总结 ...

  3. java面向对象编程知识点总结

    一:今天完成 上午详细了解了java面向对象编程的一些细节,记录如下. 1)类 是一种引用类型,包含一个签名和一个主体,主体是放在花括号里面的成员,成员包括字段和方法,还有构造方法.初始化程序和嵌套类 ...

  4. 八、Java面向对象编程(类、对象、方法、重载、可变参数、作用域、构造器、this本质)

    文章目录 Java面向对象编程(类.对象.方法.重载.可变参数.作用域.构造器.this本质) 一.类与对象 1. 类与对象的引出 2. 使用现有技术解决 3. 现有技术解决的缺点分析 4. 类与对象 ...

  5. 【Java】Java学习笔记(2)——Java面向对象基础作业函数题

    本人私人博客:Megalomania,大部分文章会现在博客上传,有不足之处欢迎指正. 学校小学期Java课程的练习题,留个档便于以后需要时候有例子可以回忆,写的烂的地方请多多包含 1.求两个数值之和 ...

  6. 用php web编程作业,代做CSE2ISD作业、代做Web,php程序作业、代写Java/web编程作业、代写C/C++/Java留学生作业...

    代做CSE2ISD作业.代做Web,php程序作业.代写Java/web编程作业.代写C/C++/Java留学生作业 日期:2018-10-08 10:00 CSE2ISD – Information ...

  7. 能听懂的Java面向对象编程-雷伟-专题视频课程

    能听懂的Java面向对象编程-2605人已学习 课程介绍         通过本课程的学习,学生能掌握面向对象的程序设计思想,并能运用Java技术和相关开发工具进行计算机软件代码的设计. 课程内容并非 ...

  8. Java面向对象编程篇6——注解与反射

    Java面向对象编程篇6--注解与反射 1.注解概述 Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制 Java 语言中的类.方法.变量.参数和包等都可 ...

  9. Java面向对象编程篇5——枚举

    Java面向对象编程篇5--枚举 1.枚举的概念 在日常生活中这些事物的取值只有明确的几个固定值,此时描述这些事 物的所有值都可以一一列举出来,而这个列举出来的类型就叫做枚举类型 2.枚举的定义 使用 ...

最新文章

  1. 手摸手教你数据可视化!(附实例讲解)
  2. spring cloud微服务分布式云架构-Gateway入门
  3. SAP Spartacus ConfigurationService
  4. C#中的Lock锁深入理解
  5. 如何:创建公钥/私钥对
  6. python访问注册表_python读取注册表中值的方法
  7. python进阶(一)
  8. C#窗体控件—textbox
  9. php的get和post,PHP中GET和POST区别
  10. python数据分析:会员数据化运营(上)——知识点
  11. 深入浅出人脸识别原理
  12. 洛谷——P2706 巧克力
  13. 数据结构整理笔记(提纲) (数据结构 C语言版 第二版 严蔚敏)
  14. IntelliJ IDEA设置修改字体大小与样式
  15. python爬取微信群聊内容_再不学Python 你就被同龄人甩开了吗?
  16. 区块链落地就看这一“会”了
  17. scrapy组件、中间件、spider中类方法from_crawler的作用
  18. 编写一个猜成语的小游戏。要求:使用一个字符串数组来保存10个四字成语,例如: String [] idioms = {“凉拌黄瓜”, “红烧肘子”, …};
  19. VMware ESX与VMware ESXi区别
  20. (cLion、RubyMine、PyCharm、WebStorm、PhpStorm、Appcode、Clion、Idea) 万能破解,获取自己的注册码

热门文章

  1. python公众号投票_如何使用微信公众号后台投票功能?
  2. Android 中 Base64 转换成 图片
  3. Vue中base64 转图片上传
  4. 【小程序】【空格只有一个】小程序连续空格
  5. 人多岗位少,都快把我卷死了,这是今年软件测试就业的真实写照,也是所有岗位的真实写照。
  6. 博客系统前台页面设计
  7. 计算机应用基础实训任务说明,计算机应用基础实训项目三Excel综合应用详细任务说明.pdf...
  8. GoLand:显示向左向右箭头
  9. go proxy 代理
  10. 关于美国大学生数学建模竞赛的一点点经验分享