Java面向对象程序设计综合练习4(填空题)(上)

简介: Java面向对象程序设计综合练习4(填空题)(上)

R4-1

请写出以下程序运行结果:


class DepositThread extends Thread
{
    BankDemo account;
    int Deposit_amount;
    String message;
    DepositThread(BankDemo account,int amount,String message){
        this.message=message;
        this.account=account;
        this.Deposit_amount=amount;
    }
    public void run()
    {
        account.Deposit(Deposit_amount,message);
    }
}
public class BankDemo
{
    static int balance=1000;
    BankDemo() {
        DepositThread first,second;
        first=new DepositThread(this,2000,"#1  ");
        second=new DepositThread(this,3000,"\t\t\t\t#2  ");
        first.start();
        second.start();
        try {
                first.join();
                second.join();
        }catch(InterruptedException e){}
        System.out.println("____________________");
        System.out.println("final balance is "+balance);
    }
    void Deposit(int amount,String name)
    {
        int bal;
        System.out.println(name+"trying to deposit "+amount);
        System.out.println(name+"getting balance");
        bal=getBalance();
        System.out.println(name+"balance got is "+balance);
        bal+=amount;
        System.out.println(name+"setting balance--");
        setBalance(bal);
        System.out.println(name+"new balance set to "+balance);
    }
    int getBalance(){
        try {
            Thread.sleep(2000);
        }catch(InterruptedException e){};
        return balance;
    }
    void setBalance(int bal)
    {
        try{
            Thread.sleep(2000);
        }catch(InterruptedException e){};
        balance=bal;
    }
    public static void main(String[] args)
    {
        new BankDemo();
    }
} 


#2  trying to deposit 3000


#1  trying to deposit 2000


#1  getting balance


#2  getting balance


2 分


#2  balance got is 1000


#2  setting balance--


#1  balance got is 1000


#1  setting balance--


#2  new balance set to 3000


#1  new balance set to 3000


____________________


final balance is 3000


R4-2

Java中的事件主要有两种:


组件类事件


和动作类事件。


R4-3


调用线程对象的


start()


方法可以启动线程,使线程处于可运行状态。


R4-4

25-3 The output of the code below is:

public class Main {
    static int count = 0;
    public static void main(String[] args) {
        for ( ;; ) {
            try {
                if ( count++ == 0 )
                    throw new Exception();
                System.out.println(1);
            } catch (Exception e) {
                System.out.println(2);
            } finally {
                System.out.println(3);
                if ( count == 2 )
                    break;
            }
            System.out.println(4);
        }
    }
}


2


3


4


1


R4-5


Java使用


RMI


2 分


可以让一个虚拟机(JVM)上的应用程序请求调用位于网络上另一处的JVM上的对象.。


R4-6


请写出以下程序运行结果


class Main {
    private static int cnt=0;
    public void run() {
new Thread(()->{
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
            }
            synchronized(this) {
                cnt++;
            }
        }).start();
    }
    public static void main(String [] args) {
        try {
       Main m = new Main();
       for ( int i=0; i<3; i++ )
            m.run();
            Thread.sleep(5000);
            System.out.println(cnt);
        } catch (InterruptedException e) {
}}}


2 分


R4-7

2 分


对话框可以中断对话过程,去响应对话框以外的事件。


R4-8


在Java中,

2 分


类用于表示一个互联网协议地址(封装IP地址和域名)。



R4-9


JDBC中获取ResutlSet对象rst的第一行数据,使用代码


2 分


R4-10

Java程序中的线程被设计为一个对象,该对象具有自己的生命周期,可以利用接口Runnable和类

2 分

创建一个线程。


R4-11

2 分

布局包括五个明显的区域:东、南、西、北、中。


R4-12

使用JDBC连接数据库的顺序有下面几个,其中正确的顺序是

2 分


A) 加载驱动 B) 导入驱动包 C) 发送并处理SQL语句 D) 建立于数据库的连接 E) 关闭连接


R4-13

按异常处理不同可以分为运行异常、捕获异常、声明异常和


2 分


R4-1


给出以下代码:

public class Main {
    void f() {
        FirstThread first = new FirstThread(this);
        SecondThread second = new SecondThread(this);
        first.start();
        second.start();
        try {
            System.out.println("Waiting for first thread to finish...");
            first.join();
            System.out.println("It's a long wait!");
            System.out.println("Waking up second thread..");
            synchronized (this) {
                this.notify();
            }
            System.out.println("Waiting for second thread to finish..");
            second.join();
        } catch (InterruptedException e) {
        }
        System.out.println("I'm ready to finish too.");
    }
    public static void main(String[] args) {
        Main m = new Main();
        m.f();
    }
}
class FirstThread extends Thread {
    Object lock;
    FirstThread(Object o) { lock = o; }
    public void run() {
        try {
            System.out.println("First thread starts running.");
            sleep(10000);
            System.out.println("First thread finishes running.");
        } catch (InterruptedException e) {
        }
    }
}
class SecondThread extends Thread {
    Object lock;
    SecondThread(Object o) { lock = o; }
    public void run() {
        System.out.println("Second thread starts running.");
        System.out.println("Second thread suspend itself.");
        try {
            synchronized (lock) {
                lock.wait();
            }
        } catch (InterruptedException e) {
        }
        System.out.println("Second thread runs again and finishes.");
    }
}


程序运行后输出结果为(一行一空):


2 分


2 分


2 分


2 分


2 分


2 分


2 分


2 分


2 分


2 分

目录
相关文章
|
23天前
|
Java 测试技术 开发者
💡Java 零基础:彻底掌握 for 循环,打造高效程序设计
【10月更文挑战第15天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
109 63
|
18天前
|
Java 关系型数据库 数据库
面向对象设计原则在Java中的实现与案例分析
【10月更文挑战第25天】本文通过Java语言的具体实现和案例分析,详细介绍了面向对象设计的五大核心原则:单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则帮助开发者构建更加灵活、可维护和可扩展的系统,不仅适用于Java,也适用于其他面向对象编程语言。
12 2
|
2月前
|
Java 编译器
封装,继承,多态【Java面向对象知识回顾①】
本文回顾了Java面向对象编程的三大特性:封装、继承和多态。封装通过将数据和方法结合在类中并隐藏实现细节来保护对象状态,继承允许新类扩展现有类的功能,而多态则允许对象在不同情况下表现出不同的行为,这些特性共同提高了代码的复用性、扩展性和灵活性。
封装,继承,多态【Java面向对象知识回顾①】
|
2月前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
35 4
|
2月前
|
Java
接口和抽象类【Java面向对象知识回顾②】
本文讨论了Java中抽象类和接口的概念与区别。抽象类是不能被实例化的类,可以包含抽象和非抽象方法,常用作其他类的基类。接口是一种纯抽象类型,只包含抽象方法和常量,不能被实例化,且实现接口的类必须实现接口中定义的所有方法。文章还比较了抽象类和接口在实现方式、方法类型、成员变量、构造方法和访问修饰符等方面的不同,并探讨了它们的使用场景。
接口和抽象类【Java面向对象知识回顾②】
|
1月前
|
存储 Java 程序员
Java基础-面向对象
Java基础-面向对象
16 0
|
2月前
|
Java 开发者
Java 面向对象
Java 是一种面向对象的编程语言,通过对象与类的概念组织代码和数据。面向对象编程的核心包括类、对象、继承、多态、封装和抽象。类是对象的蓝图,定义了属性和行为;对象则是类的实例。继承允许子类继承父类的属性和方法,增强代码复用性;多态则支持通过相同接口调用不同类型对象的行为,包括方法重载和重写。封装通过公共方法隐藏对象细节,提高安全性;抽象则对对象特征进行提炼,通过抽象类和接口实现。理解这些概念有助于设计高效、可维护的 Java 应用程序。
|
6月前
|
搜索推荐 Java
Java的面向对象特性主要包括封装、继承和多态
【4月更文挑战第5天】Java的面向对象特性主要包括封装、继承和多态
48 3
|
5月前
|
Java 开发者
Java 面向对象新视界:揭秘子类如何“继承”父类精华,再添“创新”之笔
【6月更文挑战第16天】在Java的面向对象世界,子类继承父类的特性,如`Circle`继承`Shape`,展示“is-a”关系。子类不仅保留父类的`color`和`display`方法,还添加了`radius`属性及定制的显示逻辑。这种继承与创新允许代码复用,增强灵活性和可扩展性,使得构建复杂系统变得更加高效和模块化。通过持续的继承与定制,开发者能构建出一系列独具特色的类,充分展现面向对象编程的力量。
152 57
|
4月前
|
Java 编译器
Java面向对象(三)详解: 封装 | 继承 | 方法重写 | 抽象类
Java面向对象(三)详解: 封装 | 继承 | 方法重写 | 抽象类