太原理工大学14年Java试题复习笔计

2014年Java期末题复习笔计

在方法体中显示抛出异常(throw)

声明异常(throws)

Java组件中,JButton可以实现一个按钮

启用一个线程,需要调用start()方法

notify方法只唤醒一个等待(对象的)线程并使该线程开始执行。所以如果有多个线程等待一个对象,这个方法只会唤醒其中一个线程,选择哪个线程取决于操作系统对多线程管理的实现。notifyAll 会唤醒所有等待(对象的)线程,尽管哪一个线程将会第一个处理取决于操作系统的实现。如果当前情况下有多个线程需要被唤醒,推荐使用notifyAll 方法。比如在生产者-消费者里面的使用,每次都需要唤醒所有的消费者或是生产者,以判断程序是否可以继续往下执行

Java中定义接口的关键字是interface,接口内只包含(常量)和(抽象方法)实现接口的关键字是(implements)

Java的流按照处理单元分为字节流和字符流
按照方向可以分为输入流和输出流

Java语言常用的布局管理器是(FlowLayout),(BorderLayout),(GridLayout),(CardLayout),其中JFrame默认布局管理器是(BorderLayout)。

当用户按下Button组件时,会触发___ ActionEvent_____事件,此时触发的组件把ActionEvent类传递给向它注册的监听器ActionListener,由它的_______ actionPerformed_______方法负责事件处理。

Java 通常线程的生命周期包括:新建,就绪,运行,阻塞,死亡5个状态

Java引入包的关键字为____import__,创建自定义包的package语句要写在程序的第__1___行。

Java语言中,以下三种情况需要使用关键字super来实现对父类的成员和方法的访问:调用父类构造方法,调用父类被覆盖的方法,访问父类中被隐藏的成员变量

配置Java开发环境时,需要设置环境变量path和classpath,设置path的作用是 使Java的命令可以在任意位置被访问,设置classpath的作用是设置类路径

Java多态性包括静态多态与动态多态,简述这两种多态的实现机制。

多态性包括静态多态和动态多态两种。
静态多态性主要通过方法重载实现,它们根据参数表(类型以及个数)区别语义和执行的功能
动态多态性是指定义在一个类层次的不同类中的重写函数,他们具有相同的函数原型,需要根据指针指向的对象所在类来区别语义。其实现需要具备两个条件:(1)子类继承父类,并重写父类方法;(2)父类引用指向子类对象

类方法与实例方法有什么区别?类方法能调用实例方法吗?

被static修饰的成员方法称为类方法,没有被static修饰的方法为实例方法,
类方法与类变量都依赖类而非对象,可以不创建对象直接通过类来调用访问,类方法不能调用实例方法

Java提供实现Runnable接口或继承Thread类两种方法实现线程,请简述如何通过继承Thread类来实现多线称。

(1)创建一个类继承(extend)Thread类,定义线程的构造方法;
(2)用需在此线程中执行的代码覆盖Thread类的run()方法;
(3)用关键字new创建所定义的线程类的一个实例化对象;
(4)调用该对象的start()方法启动线程。

简述this关键字的使用场合。

关键字this代表实例对象自身,有以下几种使用情况:
(1)在类的成员方法中,通过this来访问实例对象的成员变量或调用成员方法;
(2)在类的成员方法中,区分成员变量和局部变量;
(3)在类的成员方法中,使用this返回实例对象本身的引用;
(4)在类的构造方法中,使用this调用该类的其他构造方法。

Java提供实现Runnable接口或继承Thread类两种方法实现线程,请简述如何通过实现Runnable接口来实现多线程。

可按下列步骤完成应用Runnable接口实现线程的创建和启动
(1)创建一个类实现(implements)Runnable接口;
(2)用需在此线程中执行的代码覆盖Thread类的run()方法;
(3)在类中定义一个Thread类对象;
(4)应用Thread类的构造函数Thread(Runnable target)实例化(2)所定义的对象;
(5)调用该对象的start()方法启动线程

编程题目
在控制台输入一个整数,编写一个程序计算该整数的的各位数字之和。
如: 输入:123456
输出:各位数字之和为1+2+3+4+5+6=21
正确答案

import java.util.*;
public class Test1{
     public static void main(String[]args){
     String str = " ";
     System.out.println("请输入一个整数");
     Scanner sc = new Scanner(System.in);
     str = " " +sc.nextInt();
     int sum = 0;
     for (int i = 0;i <= str.length();i++){
           int temp = Integer.parseInt(str.charAt(i)+" ");
           sum += temp;
           }
           System.out.println(str+"的各位数之和为:"+sum);
  } 


		int n = a%10;
		a = a-n;
		int m = a/10;
		int sum=0;
		sum = sum+n;
		while(m!=0)
		{
			sum = sum+m%10;
			m=m/10;
		}
		return sum;

2
创建一个复数类Complex,复数具有如下格式:RealPart+ImaginaryRart*i,其中,i为-1的平方根。要求如下
(1)包括两个私有成员变量RealPart、ImaginaruPart,分别保存复数的实部和虚部。
(2)提供两个构造方法,public Complex()和public Complex(double a,double b).前者用于将复数的实部和虚部初始化为0,后者用于将复数的实部与虚部分别初始化为a、b.
(3)实现复数相减的运算方法 sub(Complex c)
(6.0分)

正确答案

class Complex{
    float realPart;
    float imaginPart;
    public Complex(){
        realPart = 0;
        imaginPart = 0;
    }
    public Complex(float a,float b){
        realPart = a;
        imaginPart = b;
    }
    void sub(Complex c1){
        realPart-=c1.realPart;
        imaginPart-=c1.imaginPart;
    }
}

3
编写程序,要求显示一个300*100像素的窗口,窗口中包含三个按钮和一个标签(如下图所示)。当点击第一个按钮时,窗口标签中显示“button1 is pressed”;当点击第二个按钮时,窗口标签中显示“button2 is pressed”;当点击第三个按钮时,窗口标签中显示“button3 is pressed”.

(8.0分)

正确答案

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class TestFrame{
       public static void main (String[]  args){
            //TODD Auto-generated method stub
              new MyFrame().load();
        }
}
class MyFrame extends JFrame{
      JButton btn1,btn2,btn3;
      Jlabel lab;
      public MyFrame (){
                   btn1 = new JButton("button1");
                   btn2 = new JButton("button2");
                   btn3 = new JButton("button3");
                   lab = new JLabel("button1 is  pressed");
       }
       void load(){
                   this.setLayout(new FlowLayout());
                   lab.setSize(300,50);
                   this.add(lab);
                   this.add(btn1);    
                   this.add(btn2);  
                   this.add(btn3);
                    btn1.addActionListener(new MyMonitor());   
                    btn2.addActionListener(new MyMonitor());  
                    btn3.addActionListener(new MyMonitor());   
                    this.setBounds(200,300,250,100);
                    this. setVisible(true);
                 }
      class MyMonitor implements  ActionListener{
              @Override
              public  void  actionPerformed(ActionEvent e){
                          JButton b = (JButton)e.getSource();
                          lab.setText("    "+b.getText()+"is pressed");
                        }
             }
}

你可能感兴趣的:(笔记)