ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java编程思想第四版第八章习题

2021-06-04 14:04:36  阅读:97  来源: 互联网

标签:java void System class 第四版 println 习题 public out


  1. 第一题
    package net.mindview.polymorphism;
    //基类-自行车
    class Cycle{
        
    }
    
    //子类-单轮车
    class Unicycle extends Cycle{
        
    }
    
    //子类-双轮车
    class Bicycle extends Cycle{
        
    }
    
    //子类-三轮车
    class Tricycle extends Cycle{
        
    }
    
    public class CycleCompetition {
        public static void ride(Cycle cycle){
            
        }
        
        public static void main(String[] args) {
            Bicycle b = new Bicycle();
            ride(b);
        }
    } 你

     

  2. (略)
  3. (略)
  4. 第四题
    package net.mindview.polymorphism;
    
    import java.util.Random;
    
    //形状
    class Shape{
        public void draw(){}
        public void erase(){}
    }
    
    //圆形
    class Cycle1 extends Shape {
        
        @Override
        public void draw() {
            System.out.println("draw cycle");
        }
        
        @Override
        public void erase() {
            System.out.println("erase cycle");
        }
        
    }
    
    class Square extends Shape {
        @Override
        public void draw() {
            System.out.println("draw Square");
        }
        
        @Override
        public void erase() {
            System.out.println("draw Square");
        }
    }
    
    //矩形
    class Triangle extends Shape {
        @Override
        public void draw() {
            System.out.println("draw Triangle");
        }
        
        @Override
        public void erase() {
            System.out.println("draw Triangle");
        }
    }
    
    //梯形
    class Trapezoid extends Shape {
        @Override
        public void draw() {
            System.out.println("draw Trapezoid");
        }
        
        @Override
        public void erase() {
            System.out.println("draw Trapezoid");
        }
    }
    
    
    
    
    class RandomShapeFactory {
        Random random = new Random(100);
        
        //下面画什么形状呢
        public Shape next(){
            switch(random.nextInt(4)) {
                default:
                case 0: return new Cycle1();
                case 1: return new Square();
                case 2: return new Triangle();
                case 3: return new Trapezoid();
            }
        }
    }
    
    public class Shapes {
        public static void main(String[] args) {
            Shape[] shape = new Shape[9];
            RandomShapeFactory factory = new RandomShapeFactory();
            for(int i=0; i<shape.length; i++){
                shape[i] = factory.next();
                shape[i].draw();
            }
    
        }
    
    }

     

  5. 第五题
    package net.mindview.polymorphism;
    //基类-自行车
    class Cycle{
        public int wheels(){
            return 0;
        }
    }
    
    //子类-单轮车
    class Unicycle extends Cycle{
        public int wheels(){
            return 1;
        }
    }
    
    //子类-双轮车
    class Bicycle extends Cycle{
        public int wheels(){
            return 2;
        }
    }
    
    //子类-三轮车
    class Tricycle extends Cycle{
        public int wheels(){
            return 3;
        }
    }
    
    public class CycleCompetition {
        public static void ride(Cycle cycle){
            System.out.println(cycle.wheels());
        }
        
        public static void main(String[] args) {
            Bicycle b = new Bicycle();
            ride(b);
        }
    }

     

  6. 第六题
    package net.mindview.polymorphism.Music3;
    
    import net.mindview.polymorphism.Note;
    
    class Instrument {
        public void play(Note i){
            System.out.println("Instrument.play() ");
        }
        
        public String toString () { 
            return Instrument.class.getName(); 
        }
        
        void adjust(){System.out.println("adjust Instrument");}
        
    }
    
    class Wind extends Instrument {
        @Override
        public void play(Note i) {
            System.out.println("Wind.play() ");
        }
    
        String what (){ return "Wind"; }
        
        void adjust(){System.out.println("adjust Wind");}
    }
    
    class Stringed extends Instrument {
        @Override
        public void play(Note i) {
            System.out.println("Stringed.play() ");
        }
    
        String what (){ return "Stringed"; }
        
        void adjust(){System.out.println("adjust Stringed");}
    }
    
    class Brass extends Instrument {
        @Override
        public void play(Note i) {
            System.out.println("Brass.play() ");
        }
    
        String what (){ return "Brass"; }
        
        void adjust(){System.out.println("adjust Brass");}
    }
    
    public class Music3 {
        //曲调
        public static void tune(Instrument i){
            i.play(Note.MIDDLE_C);
        }
        
        public static void tuneAll(Instrument[] i){
            for(Instrument ins: i){
                tune(ins);
            }
        }
        
        public static void main(String[] args) {
            Instrument[] i = {
                    new Wind(),
                    new Stringed(),
                    new Brass()
            };
            tuneAll(i);
            
            Instrument t = new Instrument();
            System.out.println(t);
        }
        
        
    }

     

  7. 第七题
    package net.mindview.polymorphism.Music3;
    
    import net.mindview.polymorphism.Note;
    
    class Instrument {
        public void play(Note i){
            System.out.println("Instrument.play() ");
        }
        
        public String toString () { 
            return Instrument.class.getName(); 
        }
        
        void adjust(){System.out.println("adjust Instrument");}
        
    }
    
    class Wind extends Instrument {
        @Override
        public void play(Note i) {
            System.out.println("Wind.play() ");
        }
    
        String what (){ return "Wind"; }
        
        void adjust(){System.out.println("adjust Wind");}
    }
    
    class Stringed extends Instrument {
        @Override
        public void play(Note i) {
            System.out.println("Stringed.play() ");
        }
    
        String what (){ return "Stringed"; }
        
        void adjust(){System.out.println("adjust Stringed");}
    }
    
    class Brass extends Instrument {
        @Override
        public void play(Note i) {
            System.out.println("Brass.play() ");
        }
    
        String what (){ return "Brass"; }
        
        void adjust(){System.out.println("adjust Brass");}
    }
    
    class Other extends Instrument {
        @Override
        public void play(Note i) {
            System.out.println("Other.play() ");
        }
    
        String what (){ return "Other"; }
        
        void adjust(){System.out.println("adjust Other");}
    }
    
    public class Music3 {
        //曲调
        public static void tune(Instrument i){
            i.play(Note.MIDDLE_C);
        }
        
        public static void tuneAll(Instrument[] i){
            for(Instrument ins: i){
                tune(ins);
            }
        }
        
        public static void main(String[] args) {
            Instrument[] i = {
                    new Wind(),
                    new Stringed(),
                    new Brass(),
                    new Other()
            };
            tuneAll(i);
            
            Instrument t = new Instrument();
            System.out.println(t);
        }
        
        
    }

     

  8. 第八题
    package net.mindview.polymorphism.Music3;
    
    import java.util.Random;
    
    import net.mindview.polymorphism.Note;
    
    class Instrument {
        public void play(Note i){
            System.out.println("Instrument.play() ");
        }
        
        public String toString () { 
            return Instrument.class.getName(); 
        }
        
        void adjust(){System.out.println("adjust Instrument");}
        
    }
    
    class Wind extends Instrument {
        @Override
        public void play(Note i) {
            System.out.println("Wind.play() ");
        }
    
        String what (){ return "Wind"; }
        
        void adjust(){System.out.println("adjust Wind");}
    }
    
    class Stringed extends Instrument {
        @Override
        public void play(Note i) {
            System.out.println("Stringed.play() ");
        }
    
        String what (){ return "Stringed"; }
        
        void adjust(){System.out.println("adjust Stringed");}
    }
    
    class Brass extends Instrument {
        @Override
        public void play(Note i) {
            System.out.println("Brass.play() ");
        }
    
        String what (){ return "Brass"; }
        
        void adjust(){System.out.println("adjust Brass");}
    }
    
    class Other extends Instrument {
        @Override
        public void play(Note i) {
            System.out.println("Other.play() ");
        }
    
        String what (){ return "Other"; }
        
        void adjust(){System.out.println("adjust Other");}
    }
    
    class RandomInstrumentFactory {
        Random rand = new Random(100);
        public Instrument next(){
            switch(rand.nextInt(4)){
                default:
                case 0: return new Wind();
                case 1: return new Stringed();
                case 2: return new Brass();
                case 3: return new Other();
            }
        }
    }
    
    public class Music3 {
        //曲调
        public static void tune(Instrument i){
            i.play(Note.MIDDLE_C);
        }
        
        public static void tuneAll(Instrument[] i){
            for(Instrument ins: i){
                tune(ins);
            }
        }
        
        public static void main(String[] args) {
            RandomInstrumentFactory factory = new RandomInstrumentFactory();
            Instrument[] instruments = new Instrument[10];
            for(int i=0; i<instruments.length; i++){
                instruments[i] = factory.next();
            }
            tuneAll(instruments);
            
            Instrument t = new Instrument();
            System.out.println(t);
        }
        
        
    }

     

  9. 第九题
    package net.mindview.polymorphism;
    
    //啮(nie四声)齿动物
    class Rodent{
        void say(){System.out.println("hi,我是 Rodent");}
    }
    
    //老鼠
    class Mouse extends Rodent{
        void say(){System.out.println("hi,我是 Mouse");}
    }
    
    //鼹鼠
    class Gerbil extends Rodent{
        void say(){System.out.println("hi,我是 Gerbil");}
    }
    
    //大颊鼠
    class Hamster extends Rodent{
        void say(){System.out.println("hi,我是 Hamster");}
    }
    
    
    //啮(nie四声)齿动物大家族
    public class RodentHome {
        public static void instroduce(Rodent rodent){
            rodent.say();
        }
        
        public static void instroduceAll(Rodent[] rodents){
            for(Rodent r: rodents){
                instroduce(r);
            }
        }
        
        public static void main(String[] args) {
            Rodent[] rodents = {
                    new Mouse(),
                    new Gerbil(),
                    new Hamster()
            };
            instroduceAll(rodents);
        }
    }

     

  10. 第十题
    package net.mindview.polymorphism;
    
    class Base{
        public void method1(){
            System.out.println("method1");
            method2();
        }
        
        public void method2(){
            System.out.println("Base method2");
        }
    }
    
    class Child extends Base{
        @Override
        public void method2() {
            System.out.println("Child method2");
        }
    }
    
    public class Test10 {
        
        public static void up(Base b){
            b.method1();
        }
        
        public static void main(String[] args) {
            Child c = new Child();
            up(c);
    
        }
    }

     

  11. afd
  12. adf
  13. 第十三题
    package net.mindview.polymorphism;
    import static net.mindview.util.Print.*;
    //这是一个共享类
    class Shared {
        private int refCount = 0;
        private static long counter = 0;
        private final long id = counter++;
        
        public Shared(){
            println("Creating "+this);
        }
        
        public void addRef(){
            refCount ++;
        }
        
        protected void dispose(){
            if(--refCount ==0){
                println("Disposing " + this);
            }
        }
        
        @Override
        public String toString() {
            return "Shared " + id;
        }
        
        @Override
        protected void finalize() throws Throwable {
            if(refCount != 0){
                println("Error, 引用计数不为0");
            }
            super.finalize();
        }
    }
    
    //组成类
    class Composing{
        private Shared shared;
        private static long counter = 0;
        private final long id = counter ++;
        
        public Composing(Shared shared){
            println("Creating "+ this);
            this.shared = shared;
            shared.addRef();
        }
        
        protected void dispose() {
            println("dispose " + this);
            shared.dispose();
        }
        @Override
        public String toString() {
            return "Composing " + id;
        }
        
        
    }
    
    //引用计数
    public class ReferenceCounting {
        
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Shared shared = new Shared();
            Composing[] composing = {
                    new Composing(shared),
                    new Composing(shared),
                    new Composing(shared),
                    new Composing(shared),
                    new Composing(shared),
                    new Composing(shared)
            };
            for(Composing c:composing){
                c.dispose();
            }
        }
    }

     

  14. fa
  15. dfa
  16. 第十六题
    package net.mindview.polymorphism;
    
    class AlertStatus {
        @Override
        public String toString() {
            return "AlertStatus";
        }
    }
    
    class StartStatus extends AlertStatus {
        @Override
        public String toString() {
            return "StartStatus";
        }
    }
    
    class EndStatus extends AlertStatus {
        @Override
        public String toString() {
            return "EndStatus";
        }
    }
    
    class PauseStatus extends AlertStatus {
        @Override
        public String toString() {
            return "PauseStatus";
        }
    }
    
    class Music4 {
        AlertStatus as = new StartStatus();
        
        public void pause(){
            as = new PauseStatus();
        }
        
        public void end(){
            as = new EndStatus();
        }
        
        public void currentStatus(){
            System.out.println(as);
        }
    }
    
    
    public class Starship {
    
        public static void main(String[] args) {
            Music4 m = new Music4();
            m.currentStatus();
            m.pause();
            m.currentStatus();
            m.end();
            m.currentStatus();
        }
    }

     

  17. 第十七题
    package net.mindview.polymorphism;
    //基类-自行车
    class Cycle{
        public int wheels(){
            return 0;
        }
    }
    
    //子类-单轮车
    class Unicycle extends Cycle{
        public int wheels(){
            return 1;
        }
        
        public void balance(){
            System.out.println("Unicycle balance");
        }
    }
    
    //子类-双轮车
    class Bicycle extends Cycle{
        public int wheels(){
            return 2;
        }
        public void balance(){
            System.out.println("Bicycle balance");
        }
    }
    
    //子类-三轮车
    class Tricycle extends Cycle{
        public int wheels(){
            return 3;
        }
    }
    
    public class CycleCompetition {
        public static void ride(Cycle cycle){
            System.out.println(cycle.wheels());
        }
        
        public static void main(String[] args) {
            Cycle[] cycle = {
                    new Cycle(),
                    new Unicycle(),
                    new Bicycle(),
                    new Tricycle()
            };
            //((Cycle)cycle[0]).balance();//编译不通过
            ((Unicycle)cycle[1]).balance();
            ((Bicycle)cycle[2]).balance();
        }
    }

     

标签:java,void,System,class,第四版,println,习题,public,out
来源: https://blog.51cto.com/u_15091061/2856415

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有