精华内容
下载资源
问答
  • Java语言程序设计

    热门讨论 2010-07-29 11:58:14
     本书既可供大专院校用作“Java语言程序设计”课程教材,也可供Java 爱好者作为入门的自学教材。 目录第1章 Java语言基础知识 1.1 Java语言与面向对象的程序设计 1.1.1 面向对象的程序设计思想 1.1.2 Java语言的...
  • JAVA语言程序设计》期末考试试题及答案

    万次阅读 多人点赞 2019-12-27 10:06:57
    文章目录《JAVA语言程序设计》期末考试试题及答案1(应考必备题库)一、单选择题二、填空题三、写出下面程序的运行结果《JAVA语言程序设计》期末考试试题及答案2(应考必备题库)一.判断题二.单项选择题三.程序...

    《JAVA语言程序设计》期末考试试题及答案1(应考必备题库)

    一、单选择题

    1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。
    A. java B. .class
    C. html D. .exe
    2、设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( A )。

    A. 3 B. 3. 5
    C. 4 D. 5

    z-- 先返回值在运算,故:返回值是3,z的值变为2
    ++x 先运算再返回值,故:x值变2,返回2;
    3/2整形数据范围内的计算,返回1;
    y +=1
    y = 3;
    返回y = 3.
    

    3、不允许作为类及类成员的访问控制符的是( C )。
    A. public B. private
    C. static D. protected
    4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。
    A. static void method( ) B. public void method( )
    C. final void method( ) D. abstract void method( )
    5、给定java 代码如下,编译运行后,输出结果是(C )。

    public class test { 
    static int i; 
    public int aMethod() { 
      i++; 
      return i; 
    } 
    public static void main (String args[]) {    
            Test test=new Test() ;  
            test.aMethod () ; 
    System.out.println (test.aMethod()) ; 
    } }   
    //int初始值为0,aMethod调用了两次所以结果为2
    

    a) 0 b) 1 c) 2 d) 3
    6、如下哪个是合法的Java中的标识符( A )。
    A、fieldname B、super C、3number D、#number
    7、下面的代码段执行之后count的值是什么( D)。

    int count = 1;
    for (int i = 1; i <= 5; i++) {//第一次i出去是1
    	count += i;}
    System.out.println(count);
    

    A、5 B、1 C、15 D、16
    8、下列哪一个import命令可以使我们在程序中创建输入/输出流对象( C )。
    A、import java.sql.; B、import java.util.;
    C、import java.io.; D、import java.net.;
    9、下列程序段执行后的结果是(A )。

    str.charAt(i)的意思是第i个字符在字符串str中所占的位置
    length()
    返回字符串的长度
    
    String s = new String("abcdefg");
    for (int i=0; i<s.length(); i+=2){//i第一次输出的值是0
        System.out.print(s.charAt(i));}  
    

    A) aceg B) ACEG C) abcdefg D) abcd
    10.Java“一次编译,随处运行”的特点在于其( A )
    A.跨平台性 B.面向对象型 C.多线程性 D.安全性
    11.下列有关类、对象和实例的叙述,正确的是( B)
    A.类就是对象,对象就是类,实例是对象的另一个名称,三者没有差别
    B.类是对象的抽象,对象是类的具体化,实例是对象的另一个名称
    C.对象是类的抽象,类是对象的具体化,实例是对象的另一个名称
    D.类是对象的抽象,对象是类的具体化,实例是类的另一个名称
    12.下列( D )不是面向对象程序设计方法的特点。D
    A.封装 B.继承 C.多态 D.结构化
    13.下列哪个属于容器的构件(B )?
    A.JFrame B.JButton C.JPanel D.JApplet
    B)JButton属于容器的构件,容器是用来存放构件的,而构件必须要放在容器上才能显示起作用
    如果只创建出一个JButton来,没有任何意义,只有放在其它三项的容器里面,才能看到使用
    14.下列有关父类属性和方法继承规则的描述错误的是( A )
    A.父类中private修饰的属性和方法在子类中不被继承
    B.父类中public修饰的属性和方法在子类中被继承且可访问
    C.父类中protected修饰的属性和方法在子类中被继承且可访问
    D.父类中default修饰的属性和方法在之类中被继承,若父类和子类在同一个包中,则也可访问

    二、填空题

    1、开发与运行Java程序需要经过的三个主要步骤为

      编辑源程序     、编译生成字节码     和       解释运行字节码        。
    

    2、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占
    2 字节内存空间,这样,无论是中文字符还是英文字符,都是占
    2 字节内存空间。
    3、设 x = 2 ,则表达式 ( x + + )/3 的值是 0
    4、若x = 5,y = 10,则x < y和x >= y的逻辑值分别为 true 和 false 。
    5、 抽象(abstract) 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。 最终(final) 方法是不能被当前类的子类重新定义的方法。
    6、创建一个名为 MyPackage 的包的语句是package MyPackage ;
    该语句应该放在程序的位置为: 应该在程序第一句 。
    7、设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 则执行以下几个语句后的输出结果是 120

       int s = 0 ;
        for (int i = 0 ; i < MyIntArray.length ; i + + )
             if ( i % 2 = = 1 )    
    s += MyIntArray[i] ;
       System.out.println(s);
    

    8、在Java程序中,通过类的定义只能实现 单 重继承,但通过接口的定义可以实现 多 重继承关系。
    9、面向对象的软件开发方法用类把(数据)和基于数据的(操作)封装在一起。
    10、在Java语言中,用来分配内存的运算符是 new
    11、接口中的方法只能是_____抽象方法________。
    12、javax.swing包中的 JMenu 类是负责创建菜单的,它的一个实例就是一个菜单。

    三、写出下面程序的运行结果

    1import java.io.*;
    public class abc
    {   
    public static void main(String args [ ])
    {    
    AB s = new AB("Hello!","I love JAVA.");
             System.out.println(s.toString( ));
        }
    }
    class AB {
      String s1;
      String s2;
      public AB(String str1, String str2)
      { 
    s1 = str1;  
    s2 = str2; 
    }
      public String toString( )
      { 
    return s1+s2;
    }
    }
    

    运行结果:Hello! I love JAVA.

    2import java.io.* ;
        public class abc
        {
              public static void main(String args[ ])
              {    int i, s = 0 ;
                   int a[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 };
                   for ( i = 0 ; i < a.length ; i ++ )
                         if ( a[i]%3 = = 0 )  s += a[i] ; 
                   System.out.println("s="+s);
               }
         }
    

    运行结果:s = 180

    3class Parent {
        String one, two;
        public Parent(String a, String b){
          one = a;
          two = b;
        }
        public void print(){ System.out.println(one); }
      }
      public class Child extends Parent {
        public Child(String a, String b){
          super(a,b);
        }
        public void print(){
          System.out.println(one + " to " + two);
        }
        public static void main(String args[]){
          Parent p = new Parent("south", "north");
          Parent t = new Child("east", "west");
          p.print();
          t.print();
        }
      }
    

    运行结果 south
    east to west
    四、编程题
    1、编写Java GUI应用程序,完成从键盘输入矩形的长和宽,求矩形的周长和面积并输出结果的功能,如下图所示。

    答:

    import  javax.swing.JOptionPane;
    public class Rect
    {
    public static void main(String args[])
    {
    	String s;
    	double	length,width,girth,area;
    	s = JOptionPane.showInputDialog("输入矩形的长:");
    	length = Double.parseDouble(s);
    	s = JOptionPane.showInputDialog("输入矩形的宽:");
    	width = Double.parseDouble(s);
    	girth = (length + width) * 2;
    	area = length * width;
    	JOptionPane.showMessageDialog(null,"周长为:" + girth + "\n" + "面积为:" + area);
    }
    }
    

    2、用Java Application编写一个程序,输出你的班级和姓名。
    答:

    public class  HelloJava {  //类定义正确3分
    	public static void main(String[] args) {//2分
    		System.out.println("学号=2013001,姓名=张三");//5分
    	}
    }
    

    《JAVA语言程序设计》期末考试试题及答案2(应考必备题库)

    一.判断题

    1.在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch中的参数类型有父类子类关系,此时应该将父类放在后面,子类放在前面。( √ )
    2.子类只能继承父类的public,protected和同一个包中的package级的成员。( √ )
    3.在类中实现一个接口,则一定要实现接口中的所有方法。( × )
    4.抽象方法不仅有方法头,还应该有方法体。( × )
    拥有abstract方法的类是抽象类,但抽象类中可以没有abstract方法。
    5.在比较str1和str2两个字符串对象值是否相等时使用语句str1==str2。( √ )
    6.Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。(√ )
    7.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。 (× )
    java自动回收机制
    8.构造函数用于创建类的实例对象,构造函数名应与类名相同,返回类型为void。 (× )
    构造函数无返回值
    9.如果源文件包含import语句,则该语句必须是除空行和注释行外的第一个语句行。( √ )
    10.拥有abstract方法的类是抽象类,但抽象类中可以没有abstract方法。 (√ )
    11.静态初始化器是在其所属的类加载内存时由系统自动调用执行。 (√ )
    12.在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。 (× )
    13.Java applet也能够存取客户机磁盘上的文件。( √ )
    14.进程是程序的一次动态执行过程。一个进程在其执行过程中,可以产生多个线程——多线程,形成多条执行线索。( √ )

    二.单项选择题

    1.Java application中的主类需包含main方法,以下哪项是main方法的正确形参?( B)
    A、 String args B、String args[] C、Char arg D、StringBuffer args[]
    2.以下关于继承的叙述正确的是(A )。
    A、在Java中类只允许单一继承
    B、在Java中一个类只能实现一个接口
    C、在Java中一个类不能同时继承一个类和实现一个接口
    D、在Java中接口只允许单一继承
    3.paint()方法使用哪种类型的参数? (A )
    A、Graphics B、Graphics2D C、String D、Color
    4.以下哪个不是Java的原始数据类型( B )
    A、int B、Boolean C、float D、char
    5.若需要定义一个类域或类方法,应使用哪种修饰符?( A )
    A、static B、package C、private D、public
    6.在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行( A )。
    A、init() B、start() C、destroy() D、stop()
    7.有以下程序片段,下列哪个选项不能插入到行1。( D )
    1.
    2 .public class Interesting{
    3. //do sth
    4.}
    A、import java.awt.; B、package mypackage;
    C、class OtherClass{ } D、public class MyClass{ }
    8. 设有下面两个赋值语句:
    a = Integer.parseInt(“12”);
    b = Integer.valueOf(“12”).intValue();
    下述说法正确的是( D )。
    A、a是整数类型变量,b是整数类对象。
    B、a是整数类对象,b是整数类型变量。
    C、a和b都是整数类对象并且值相等。
    D、a和b都是整数类型变量并且值相等。
    9.FilterOutputStream是BufferedOutputStream、DataOutputStream及PrintStream的父类,以下哪个类可能是FilterOutputStream构造函数的参数类型?(A)
    A、OutputStream B、File
    C、InputStream D、BufferedOutputStream
    10.在编写Java Applet程序时,需在程序的开头写上( B )语句。
    A、import java.awt.
    ; B、import java.applet.Applet ;
    C、import java.io.* ; D、import java.awt.Graphics ;
    11.在使用interface声明一个接口时,只可以使用( D )修饰符修饰该接口。
    A、private B、protected C、private protected D、public
    12.Java源文件和编译后的文件扩展名分别为( B )
    A.class 和java B.java 和class C.class和class D.java和java
    13.下列说法中,不正确的一项是(B )
    A.Java程序只有两类:Application和Applet
    B.类的方法只能由public修饰
    C.面向对象的程序设计的优点有可重用性、可扩展性、可管理性
    D.Java语言通过接口支持多重继承
    14.main(B)方法是Java Application程序执行的入口点,关于main()方法的方法头,下面( )是合法的。
    A.public static void main ()
    B.public static void main (String args[ ])
    C.public static int main (String [ ] args)
    D.public void main (String args[ ])
    15.在类中若要处理ItemEvent事件,则该类需要实现的接口是(A )
    A.ItemListener B.ActionListener C. itemStateChanged D. Event
    16.将GUI窗口中的组件按照从左到右如打字式排列的布局管理器是( A )
    A.FlowLayout B.BorderLayout C.GirdLayout D.CardLayout

    三.程序阅读题

    1.以下程序的输出结果为 相等 。

    class StringTest1
    {
    	public static void main(String[] args) 
    	{
    		String s1="hello";
    		String s2=new String("hello");
    		if(s1.equals(s2)){
    			System.out.println("相等");
    		}else{
    			System.out.println("不相等");
    		}
    	}
    }
    

    2.以下程序段的输出结果为 5 6 7 8 9 。

    public class TestArray
    {
        public static void main(String  args[ ]){  
        	int  i , j ;
    		int  a[ ] = { 5,9,6,8,7};
    	   	for  ( i = 0 ; i < a.length-1; i ++ ) {
    		   	int  k = i;
    		   	for  ( j = i ; j < a.length ;  j++ )
    			   	if  ( a[j]<a[k] )  k = j;
    		  	int  temp =a[i];
    		   	a[i] = a[k];
    		   	a[k] = temp;
    	   	}
    	   	for  ( i =0 ; i<a.length; i++ )
    		  		System.out.print(a[i]+"  ");
           System.out.println( );
       }
    }
    

    3.写出以下程序的功能。

    import java.io.*;
    public class TestFile
    {
      	public static void main(String args[]) throws Exception
        {
        BufferedReader br = new BufferedReader(
    new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new FileWriter(“input.txt"));
        String s;
        while (true)
    	 {
          System.out.print("请输入一个字符串: ");
          System.out.flush();
          s=br.readLine();
          if (s.length()==0) break;
          bw.write(s);
          bw.newLine();
        }
        bw.close();
      }
    }
    

    功能:从键盘逐一输入字符串,逐一输出至input.txt文件中,直至输入空行。

    四.阅读以下程序,写出输出结果。

    class  Animal {
      Animal() {
        System.out.print ("Animal  ");  }
    }
    public  class  Dog  extends  Animal {
     Dog() {
        System.out.print ("Dog ");  }
    
      public static void main(String[] args) {
        Dog  snoppy= new  Dog();  }
    }
    
    

    输出结果:Animal Dog

    《JAVA语言程序设计》期末考试试题及答案3(应考必备题库)

    一、单项选择题

    1、如下哪个是Java中的标识符(D)
    A、public B、super C、3number D、width
    2、如下哪个是Java中的标识符( A)
    A、fieldname B、super C、3number D、#number
    3、已知如下定义:String s = “story”; 下面哪个语句不是合法的(C )
    A、s += “books”; B、s = s + 100;
    C、int len = s.length; D、String t = s + “abc”;
    4、如下哪个是Java中有效的关键字(C )
    A、name B、hello C、false D、good
    5、下面的代码段执行之后count的值是什么( D )

    int count = 1;
    	for (int i = 1; i <= 5; i++) {
    		count += i;
    	}
    	System.out.println(count);
    

    A、5 B、1 C、15 D、16
    6、定义一个类,必须使用的关键字是(B )
    A、public B、class C、interface D、static
    7、定义一个接口必须使用的关键字是(C
    A、public B、class C、interface D、static
    8、如果容器组件p的布局是BorderLayout,则在p的下边中添加一个按钮b,应该使用的语句是( C
    A、p.add(b); B、p.add(b,“North”);
    C、p.add(b,“South”); D、b.add(p,“North”);
    9、声明并创建一个按钮对象b,应该使用的语句是( A
    A、Button b=new Button(); B、button b=new button();
    C、Button b=new b(); D、b.setLabel(“确定”);
    10、Frame对象默认的布局管理器是( B
    A、FlowLayout B、BorderLayout
    C、CardLayout D、null
    11、下列哪一个import命令可以使我们在程序中创建输入/输出流对象(C
    A、import java.sql.; B、import java.util.;
    C、import java.io.; D、import java.net.;
    12、下面哪一个import命令可以为我们提供编写网络应用程序的类(D
    A、import java.sql.; B、import java.util.;
    C、import java.io.; D、import java.net.;
    13、如果需要从文件中读取数据,则可以在程序中创建哪一个类的对象(A)
    A、FileInputStream B、FileOutputStream
    C、DataOutputStream D、FileWriter
    14、在编写Java Applet程序时,需在程序的开头写上( B)语句。
    A、import java.awt.* ; B、import java.applet.Applet ;
    C、import java.io.* ; D、import java.awt.Graphics ;
    15、如何在框架(Frame)中显示标题?(C
    A、调用根窗格的set Title 函数显示
    B、调用内容窗格的setTitle函数显示
    C、调用框架对象的setTitle函数显示
    D、调用框架对象的Border对象的setTitle函数显示
    16、下列各种java中的构造函数定义,那种形式是错误的构造函数定义( C)。

    A 、 class MyClass
    { public MyClass()  {  }
    }
    B、 class MyClass 
    {   public MyClass(int X)   {   } 
    }
    C、 class MyClass
    {   public int  MyClass()   {   } 
    }
    D、 class MyClass
    {  public  MyClass(int x, int y)  {  }
    }
    

    17、Java属于( A )型语言。
    A.解释 B.编译 C.多线程性 D.安全性
    18、下列哪项不是Java语言中所规定的注释样式?( B
    A.//单行注释 B.–单行注释
    C./* D./**
    *多行注释 *文档注释
    */ */

    1, // 注释一行
    2, /* ...... */ 注释若干行
    3, /**……*/文档注释
    

    19、以下关于抽象类和接口的说法正确的是( B )。
    A.抽象类可以用来定义接口 B.定义抽象类时需要abstract
    C.抽象类中的所有方法都是具体的 D.抽象类可以是对接口的实现
    20、Applet可以做下列哪些操作( D)?
    A.读取客户端文件  B.在客户端主机上创建新文件
    C.在客户端装载程序库  D.读取客户端部分系统变量
    21、下列说法中,错误的一项是( D
    A.在Java中,若要处理某类事件,必须定义相关的事件处理类
    B.在对事件源实例化之后,要注册相应事件的监听器
    C.事件处理类必须实现与该类事件相对应的监听器接口
    D.事件源通常是一个构件,也称做监听器
    22、下列哪项是不能改变线程状态的方法?(C )
    A.start( ) B.sleep( ) C.main( ) D.stop( )

    二、填空题

    1、如果将类MyClass声明为public,它的文件名称必须是(MyClass.java)才能正常编译。
    2、Java程序中的单行注释符是( // ),多行注释符是( /* */ )。

    1, // 注释一行
    2, /* ...... */ 注释若干行
    3, /**……*/文档注释
    

    3、Java中布尔类型的常量有两种,它们是(true)和(false)。
    4、Java中用于定义小数的关键字有两个:(float) 和 (double),后者精度高于前者。
    5、Java中用于两个数相等比较的运算符是:(==),用于不相等比较的运算符是(<>)。
    6、在Java中定义一个字符串类型的变量str的语句是:(String str;) ,定义一个具有10个元素的整型数组a的语句是:(int[ ] arr = new int[10];) 。
    7、导入mypackage包中的所类的命令是( import mypackage.*; )。
    8、当声明一个数组int arr[] = new int[5]; 时,这代表这个数组所保存的变量类型是(int),数组名是(arr),数组的大小为(5),数组元素下标的使用范围是(0到4)。
    9、假设x=13,y=4,则表达式x%y != 0的值是(true),其数据类型是(boolean)。
    10、异常处理是由(try)、(catch)和finally块三个关键所组成的程序块。
    11、以下程序段的输出结果是(三角形)

    int x = 5, y = 6, z = 4;
    	if (x + y > z && x + z > y && z + y > x)
    		System.out.println("三角形");
    	else
    		System.out.println("不是三角形");
    

    12、下面程序段的执行结果是(6 5 4 3 2)

    int a[] = { 2, 3, 4, 5, 6 };
    	for (int i = a.length - 1; i >= 0; i--)
    	//这里的a表示你上面定义的那个整型一维数组,然后a.length表示a数组的长度,第一次i出去是4所以a【4】=6
    		System.out.print(a[i] + "");
    

    13、定义类的保留字是( class ),定义接口的保留字是( interface )。
    14、构造方法是一种特殊的成员方法,构造方法名与( 类名 ) 相同。
    15、Java语言只允许单继承,指每个类只能有一个 ( 父类 ) ,但通过接口的定义可以实现( 多重 ) 继承关系。
    16、在Java中,抽象类不能 被实例化 。
    17、在Java中,为了能监视到ActionEvent类型的事件,事件源必须使用 addActionListener( ) 方法获得监视器。
    18、利用DriverManager类的 getConnection(String url)静态方法创建数据库连接。

    三、程序阅读题

    1、以下程序的输出结果为_ Peter is 17 years old!___。

    public class Person {
    	String name;
    	int age;
    
    	public Person(String name, int age) {
    		this.name = name;
    		this.age = age;
    	}
    
    	public static void main(String[] args) {
    		Person c = new Person("Peter", 17);
    		System.out.println(c.name + " is " + c.age + " years old!");
    	}
    }
    

    2、阅读以下程序,输出结果为 90and10

    
    public class ClassA  {
    	public int a;
    }
    class ClassB extends ClassA  {
    	public String b="and";
    }
    class ClassC extends ClassB  {
    public int c;
    	public static void main(String[] args)	{
    		ClassC  cc=new  ClassC();
    		cc.a=90;
    		cc.c=10;
    		System.out.println(cc.a+cc.b+cc.c);
    	}}
    

    3、以下程序的输出结果为__课程号:101 课程名:ASP 学分:3___。

    public class Course {
    	private String cNumber;
    	private String cName;
    	private int cUnit;
    
    	public Course(String number, String name, int unit) {
    		cNumber = number;
    		cName = name;
    		cUnit = unit;
    	}
    
    	public void printCourseInfo() {
    		System.out.println("课程号:" + cNumber + " 课程名:" + cName + " 学分:" + cUnit);
    	}
    }
    
    class CourseTest {
    	public static void main(String[] args) {
    		Course c;
    		c = new Course("101", "ASP", 3);
    		c.printCourseInfo();
    	}
    }
    

    4、以下程序的输出结果为__汤姆猫体重:20.0斤___。

    public class Tom {
    	private float weight;
    	private static String name;
    
    	public void setWeight(float weight) {
    		this.weight = weight;
    	}
    
    	private void out() {
    		System.out.println(name + "体重:" + weight + "斤");
    	}
    
    	public static void main(String[] args) {
    		Tom.name = "汤姆猫";
    		Tom cat = new Tom();
    		cat.setWeight(20);
    		cat.out();
    	}
    }
    

    5、以下程序的输出结果_姓名:Tom 年龄:15 家庭住址:金水区 电话:66123456 学校:九中_。

    public class Father {
    	String name, address, tel;
    	int age;
    
    	public Father(String name, int age) {
    		this.name = name;
    		this.age = age;
    	}
    
    	void out() {
    		System.out.print("姓名:" + name);
    		System.out.print(" 年龄:" + age);
    	}
    
    	void outOther() {
    		System.out.print(" 家庭住址:" + address);
    		System.out.print(" 电话:" + tel);
    	}
    }
    
    class Son extends Father {
    	String school;
    
    	public Son(String name, int age) {
    		super(name, age);
    	}
    
    	void out() {
    		super.out();
    		super.outOther();
    		System.out.println(" 学校:" + school);
    	}
    
    	public static void main(String args[]) {
    		Son son = new Son("Tom", 15);
    		son.address = "金水区";
    		son.school = "九中";
    		son.tel = "66123456";
    		son.out();
    	}
    }
    

    6、下列程序的运行结果是__12345____。

    public class MyClass {
    	int a[] = { 1, 2, 3, 4, 5 };
    
    	void out() {
    		for (int j = 0; j < a.length; j++)
    			System.out.print(a[j] + "");
    	}
    
    	public static void main(String[] args) {
    		MyClass my = new MyClass();
    		my.out();
    	}
    }
    

    四、简答题

    1、简述Java中异常处理的机制?

    答:首先Java的异常是面向对象的。一个Java的Exception是一个描述异常情况的对象.当出现异常情况时,一个Exception对象就产生了,并放到异常的成员函数里。
    Java的异常处理是通过5个关键词来实现的:try,catch,throw,throwsfinally1.异常处理:在Java语言的错误处理结构由trycatchfinally三个块组成。其中try块存放将可能发生异常的Java语言,并管理相关的异常指针;catch块紧跟在try块后面,用来激发被捕获的异常;finally块包含清除程序没有释放的资源,句柄等。不管try块中的代码如何退出,都将执行 finally块。
    2.抛出异常:Java语言可以不在方法中直接捕获,而用throw语句将异常抛给上层的调用者。Throw语句就是来明确地抛出一个异常;首先你必需得到一个Throwable的实例句柄,通过参数传到catch中,或者采用new操作符来创建一个。
    

    2、什么是继承?

    答:通过必要的说明能够实现某个类无需重新定义就拥有另一个类的某些属性和方法,并把这种关系称为继承,先定义的类称为父类,后定义的类称为子类,并且允许多层的继承关系。
    

    3、请简述重载和重写的区别?

    答:方法的重写Overriding和重载Overloading是Java多态性的不同表现。
    重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。
    如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。
    如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。
    

    4、Java 规定类中的成员变量和方法具有4种访问控制符?哪四种?请列出。

    答:Public、protectedprivatedefault 
    

    5、什么是实例变量和类变量及他们的区别?

    答:用修饰符static说明的变量是类变量,其他是实例变量。不同对象的实例变量将分配不同的内存空间。所有对象的类变量都分配给相同的一处内存,改变其中一个对象的类变量的值,会影响其他对象的这个类变量的值。
    

    6、用abstract修饰符修饰的类和方法有什么特点?

    答:用abstract修饰的类不能创建对象,必须产生子类,有子类创建对象
    用abstract修饰的方法只允许声明,而不允许实现。
    如果一个类是一个abstract类的子类,它必须实现父类的abstract方法。
    

    五、程序设计题
    1、按以下要求编写程序
    (1) 创建一个Rectangle类,添加width和height两个成员变量
    (2) 在Rectangle中添加两种方法分别计算矩形的周长和面积
    (3) 编程利用Rectangle输出一个矩形的周长和面积
    解答:

    public class Rectangle {
    	float width, height;
    	public Rectangle(float width, float height) {
    		this.width = width;
    		this.height = height;
    	}
    	public float getLength(){
    		return (this.width + this.height) * 2;
    	}
    	public float getArea(){
    		return this.width * this.height;
    	}
    	public static void main(String [] args) {
    		Rectangle rect = new Rectangle(10, 20);
    		System.out.println("周长是:" + rect.getLength());
    		System.out.println("面积是:" + rect.getArea());
    	}
    }
    
    

    2、按以下要求编写程序
    (1) 编写Animal接口,接口中声明run() 方法
    (2) 定义Bird类和Fish类实现Animal接口
    (3) 编写Bird类和Fish类的测试程序,并调用其中的run()方法
    解答:

    public interface Animal {
    	void run();
    }
    
    class Bird implements Animal {
    	public void run() {
    		System.out.println("鸟儿在飞...");
    	}
    }
    
    class Fish implements Animal {
    	public void run() {
    		System.out.println("鱼儿在游...");
    	}
    }
    
    public class TestAnimal {
    
    	public static void main(String[] args) {
    		Bird bird = new Bird();
    		bird.run();
    		
    		Fish fish = new Fish();
    		fish.run();
    	}
    }
    

    3、编写一个Frame框架应用程序,要求如下:
    (1) 在窗口设置两个菜单“文件”、“编辑”
    (2) 在“文件”菜单里添加三个菜单项“打开”、“保存”、“关闭”
    (3) 在“编辑”菜单里添加两个菜单项“复制”、“粘贴”
    (4) 点击关闭菜单项时,使程序关闭。
    解答:

    import java.awt.Color;
    import java.awt.Frame;
    import java.awt.Menu;
    import java.awt.MenuBar;
    import java.awt.MenuItem;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    /*
     * 主窗体
     */
    public class MyFrame extends Frame {
    	private static final long serialVersionUID = 6895463895656626294L;
    	
    	private Frame frmMain;     	// 窗体
    	MenuBar mb;				  	// 菜单栏
    	Menu mnuFile;              	// "文件"菜单
    	Menu mnuEdit;              	// "编辑"菜单
    	MenuItem miOpen;   		   	// "打开"菜单项
    	MenuItem miSave;           	// "保存"菜单项
    	MenuItem miClose;          	// "关闭"菜单项
    	MenuItem miCopy;           	// "复制"菜单项
    	MenuItem miPaste;          	// "粘贴"菜单项
    	
    	public MyFrame() {
    		frmMain = new Frame("主窗体");
    		
    		// 创建菜单栏
    		mb = new MenuBar();
    		
    		// 创建菜单
    		mnuFile = new Menu("文件");
    		mnuEdit = new Menu("编辑");
    		
    		// 创建菜单项
    		miOpen = new MenuItem("打开");
    		miSave = new MenuItem("保存");
    		miClose = new MenuItem("关闭");
    		miCopy = new MenuItem("复制");
    		miPaste = new MenuItem("粘贴");
    	}
    	public void showFrame() {
    		frmMain.setSize(800, 600);
    		frmMain.setLocation(100, 100);
    		frmMain.setBackground(Color.white);
    		frmMain.setVisible(true);
    		frmMain.setLayout(null);
    		frmMain.addWindowListener(new WindowHandler()); // 注册窗口监听器
    		// 将菜单栏放入窗体中
    		frmMain.setMenuBar(mb);
    		// 将菜单放入菜单栏中
    		mb.add(mnuFile);
    		mb.add(mnuEdit);
    		// 将菜单项放入菜单中
    		mnuFile.add(miOpen);
    		mnuFile.add(miSave);
    		mnuFile.add(miClose);
    		mnuEdit.add(miCopy);
    		mnuEdit.add(miPaste);
    		// 注册动作事件监听器
    		miClose.setActionCommand("miClose_Clicked");
    		miClose.addActionListener(new MenuHandler());
    	}
    	
    	// 定义一个内部类,在这个类中编写窗口关闭事件处理程序。
    	private class WindowHandler extends WindowAdapter {
    
    		public void windowClosing(WindowEvent e) {
    			System.exit(0); // 退出应用程序,状态码 0 表示正常终止,非 0 表示异常终止。
    		}
    	}
    	
    	// 定义一个内部类,在这个类中编写动作事件处理程序。
    	private class MenuHandler implements ActionListener {
    
    		public void actionPerformed(ActionEvent e) {
    			
    			if (e.getActionCommand() == "miClose_Clicked") {
    				System.exit(0); // 退出应用程序
    			
    			}
    		}
    	}
    }
    
    public class TestMyFrame {
    
    	public static void main(String[] args) {
    		// 启动主窗体
    		MyFrame guiWindow = new MyFrame();
    		guiWindow.showFrame();
    	}
    }
    

    《JAVA语言程序设计》期末考试试题及答案4(应考必备题库)

    一、 单选题

    1、下列程序段执行后的结果是( A )。

    String s = new String("abcdefg");
    for (int i=0; i<s.length(); i+=2){
        System.out.print(s.charAt(i));
    }  
    

    A) aceg B) ACEG C) abcdefg D) abcd
    2、有整型数组:int[] x={12,35,8,7,2};,则调用方法Arrays.sort(x)后,数组x中的元素值依次是( A ).
    A) 2 7 8 12 35 B) 12 35 8 7 2
    C) 35 12 8 7 2 D) 8 7 12 35 2

    Arrays.sort(x)按升序排列
    

    3、下面的程序段创建了BufferedReader类的对象in,以便读取本机c盘my文件夹下的文件1.txt。File构造函数中正确的路径和文件名的表示是( C )。
    File f = new File(填代码处);
    file =new FileReader(f);
    in=new BufferedReader(file);
    A) “./1.txt” B) “…/my/1.txt” C) "c:\\my\\1.txt" D) “c:\ my\1.txt”
    4、应用程序的main方法中有以下语句,则输出的结果是 ( A )。

       String  s1=new String("abc");
            String  s2=new String("abc"); 
            boolean b1=s1.equals(s2);
            boolean b2=(s1==s2);            
            System.out.print(b1+"   "+b2);           
    

    A)true false B) false true C) true true D)false false
    5、应用程序的main方法中有以下语句,则输出的结果是 (B )。

            Hashtable hashtable=new Hashtable();
            hashtable.put("x","12345");
            hashtable.put("y","67890");
            hashtable.put("a","abcde"); 
    		 System.out.println(hashtable.get("a"));       
    

    A) a B) abcde C) 12345 D) 67890
    6、下面语句的功能是( A)。

    RandomAccessFile  raf2 = new RandomAccessFile("1.txt","rw" ); 
    

    A)打开当前目录下的文件1.txt,既可以向文件写数据,也可以从文件读数据。
    B)打开当前目录下的文件1.txt,但只能向文件写入数据,不能从文件读取数据。
    C)打开当前目录下的文件1.txt,但不能向文件写入数据,只能从文件读取数据。
    D) 以上说法都不对。
    7、应用程序的main方法中有以下语句,则输出的结果是 B( )。

    String   s="12345#aaa#bbb#67890";
    	int     n=s.indexOf("#");
    	int     k=s.indexOf("#",n+1);
    	int     m=s.indexOf("#",k+1);
    	String  s2=s.substring(m+1);
    	System.out.println(s2);	
    

    A) 123456 B) 67890 C) aaa D) bbb
    8、下面程序段执行后b的值是(B )。

    Integer integ =new Integer(9)boolean b = integ  instanceof  Object; 
    

    A) 9 B) true C) 1 D) false
    9、应用程序Test.java的源程序如下,在命令行键入:
    java Test aaa bb c
    回车后输出的结果是 ( A )。

    public class Test {
        public static void main(String args[]) {
            int  k1=args.length;
            int  k2=args[1].length();         
            System.out.print(k1+"    "+k2); 
        }  
    } 
    //args.length表示传入参数的个数
    

    A) 3 2 B)1 2 C) 1 3 D) 3 3
    10、应用程序的main方法中有以下语句,则输出的结果是 ( A )。

     int  b[][]={{1}, {2,2}, {2,2,2}};
            int sum=0;
            for(int i=0;i<b.length;i++) {            
                for(int j=0;j<b[i].length;j++) {
                    sum*=b[i][j];
                }            
            }
            System.out.println("sum="+sum);
    

    A) 32 B)11 C) 2 D) 3
    11、应用程序的main方法中有以下语句,则执行后输出的结果是 ( D )。
    int[] x={125,21,5,168,98};
    int max=x[0];
    for(int i=1;i<x.length;i++){
    if(x[i]> max)
    max =x[i];
    }
    System.out.println(max);
    A) 125 B) 5 C) 98 D) 168
    12、程序Test.java编译运行后输出的结果是( A )。
    public class Test {
    String s1=“java”;
    public static void main(String args[]) {
    int z=2;
    Test t=new Test();
    System.out.println(t.s1+z);
    }
    }
    A) java2 B)2 C)没有输出结果 D)java
    13、应用程序的main方法中有以下语句,则输出的结果是 ( A )。
    String s1=“0.5”, s2=“12”;
    double x=Double.parseDouble(s1);
    int y=Integer.parseInt(s2);
    System.out.println(x+y);
    A) 12.5 B) 120.5 C) 12 D) “12.5”
    14、下面的程序创建了一个文件输出流对象,用来向文件test.txt中输出数据,假设程序当前目录下不存在文件test.txt,编译下面的程序Test.java后,将该程序运行3次,则文件test.txt 的内容是( D )。
    import java.io.*;
    public class Test {
    public static void main(String args[]) {
    try {
    String s=“ABCDE”;
    byte b[]=s.getBytes();
    FileOutputStream file=new FileOutputStream(“test.txt”,true);
    file.write(b);
    file.close();
    }
    catch(IOException e) {
    System.out.println(e.toString());
    }
    }
    }
    A) ABCABC B) ABCDE C) Test D) ABCDE ABCDE ABCDE
    15、在Java语言中,表达式10/3的结果是(C )。
    A.3.3 B.3.33 C.3 D.3.0
    16、已知数组arrey,其最后一个元素的下标是(D )。
    A.arrey.size B.arrey.length C. arrey.size-1 D. arrey.length-1
    17、初始状态下,ResultSet的指针初始位置在( )
    A.第一行之前 B.第一行 C.最后一行 D.最后一行之后
    18、下列有关Swing的叙述,哪项错误? ( D )
    A.Swing是Java基础类(JFC)的组成部分
    B.Swing是可用来构建GUI的程序包
    C.Java基础类(JFC)是Swing的组成部分
    D.Swing是AWT图形工具包的替代技术
    Swing 是一个为Java设计的GUI工具包。
    Swing是JAVA基础类的一部分。
    Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。

    二、程序阅读题

    1、阅读下面的程序,回答问题(问3分,问3分,共6分)。
    import java.awt.;
    import javax.swing.
    ;
    public class T extends JFrame {
    public T ( ) {
    super(“GridLayout”);
    Container con=this.getContentPane();
    con.setLayout(new GridLayout(2,3));
    con.add(new JButton(“a”));
    con.add(new JButton(“b”));
    con.add(new JButton(“c”));
    con.add(new JButton(“d”));
    con.add(new JButton(“e”));
    con.add(new JButton(“f”));
    setSize(200, 80);
    setVisible(true);
    }
    public static void main(String args[]) {
    new T();
    }
    }
    画图表示程序运行后的图形界面。
    如果程序通过实现某个接口处理按钮的动作事件,则该接口名为何?接口中的方法头声明如何?
    答案:

    接口名:ActionListener
    接口中的方法:public void actionPerformed(ActionEvent e)
    2、阅读下面的程序代码,并回答问题(①问3分,②问3分,共6分)。
    String s1 = new String(“abcde”);
    String s2 = new String(“abcde”);
    boolean b1= s1.equals(s2);
    boolean b2 = s1== s2;
    System.out.print(b1+" "+b2);
    编译运行上面的程序:①程序段执行后,在命令行的输出结果如何?②equals方法的功能是什么?运算符“ == ”\ 的功能是什么?
    答:
    ①true false
    ②equals方法比较两个字符串的内容是否相等;运算符“==”判断两个对象是否指向同一个引用,即是否为同一个对象。

    《JAVA程序设计》期末考试试题 (五)

    一、 单选题

    1、当某一线程正处于休眠状态,而另一个线程用 Thread 类中的 interrupt() 方法中断它时,抛出的异常类型是( C )。
    A) IOException B) RuntimeException
    C) InterruptedException D) ClassNotFoundException
    2、下面的程序段的功能是( D)。
    File file1=new File(“d:\xxx\yyy\zzz”);
    file1.mkdirs();
    A)在当前目录下生成子目录:\xxx\yyy\zzz B)生成目录: e:\xxx\yyy\zzz
    C)在当前目录下生成文件xxx.yyy.zzz D)以上说法都不对
    3、应用程序的main方法中有以下语句,则输出的结果是 ( B )。
    String s = “xxxxxxxxxxxxxxx#123#456#zzzzz”;
    int n = s.indexOf("#");
    int k = s.indexOf("#", n+1);
    String s2 = s.substring(n+1, k);
    System.out.println(s2);
    A) 123456 B) 123 C) xxxxxxxxxxxxxxx D) zzzzz
    4、关于下面的程序Test.java说法正确的是( D )。
    public class Test {
    String x=“1”;
    int y;
    public static void main(String args[]) {
    int z=2;
    System.out.println(x+y+z);
    }
    }
    A)3 B)102 C) 12 D)程序有编译错误

    5、应用程序的main方法中有以下语句,则输出的结果是 ( A )。
    int b[][]={{1, 1, 1}, {2,2}, {3}};
    int sum=0;
    for(int i=0; i<b.length; i++) {
    for(int j=0; j<b[i].length; j++) {
    sum+=b[i][j];
    }
    }
    System.out.println(“sum=”+sum);
    A) 10 B)6 C) 9 D) 13
    6、应用程序的main方法中有以下语句,则执行后输出的结果是 ( B)。
    int[] x = {125,21,5,168,98};
    int min = x[0];
    for (int i=1; i<x.length; i++){
    if(x[i] < min)
    min = x[i];
    }
    System.out.println(min);
    A) 125 B) 5 C) 98 D) 168

    7、应用程序的main方法中有以下语句,则输出的结果是 ( D )。
    Hashtable hashtable=new Hashtable();
    hashtable.put(“100”,“aaa”);
    hashtable.put(“200”,“bbb”);
    hashtable.put(“300”,“ccc”);
    System.out.println(hashtable.get(“300”).toString()
    + hashtable.get(“200”).toString()
    + hashtable.get(“100”).toString());
    A) aaa B) bbb C) ccc D) cccbbbaaa
    8、以下关于java异常说法不正确的是(D )。
    A) Throwable 类是 Java 语言中Error类和Exception类的父类。
    B)当异常对象是Exception类(或其子类)的实例时,能通过 Java 虚拟机或者 throw 语句抛出该异常对象,并能通过try…catch…finally处理。
    C)如果只用一个catch块捕捉多个异常对象,则catch 子句中的参数类型应是所有异常对象的父类。
    D)以上说法都不对。
    9、下面的程序创建了一个文件输出流对象,用来向文件test.txt中输出数据,假设程序当前目录下存在文件test.txt,编译下面的程序Test.java后,将该程序运行3次,则文件test.txt 的内容是( D)。
    import java.io.*;
    public class Test {
    public static void main(String args[]) {
    try {
    String s=“ABCDE”;
    byte b[]=s.getBytes();
    FileOutputStream file=new FileOutputStream(“test.txt”, true);
    file.write(b);
    file.close();
    }
    catch(IOException e) {
    System.out.println(e.toString());
    }
    }
    }
    A) ABCABC B) ABCDE C)Test D) ABCDE ABCDE ABCDE
    10、下面说法不正确的是( D )?
    A)列表(List)、集合(Set)和映射(Map)都是java.util包中的接口。
    B)List接口是可以包含重复元素的有序集合。
    C)Set接口是不包含重复元素的集合。
    D)Map接口将键映射到值,键可以重复,但每个键最多只能映射一个值。
    11、给定java 代码如下,编译运行后,输出结果是( C)。 public class test {
    static int i=0;
    public int aMethod() {
    i++;
    return i; }
    public static void main (String args[]) {
    Test test=new Test() ;
    test.aMethod () ;
    System.out.println (test.aMethod()) ;
    } }
    A、0 B、1 C、2 D、3
    12、有整型数组:int[] x={12,35,8,7,2};,则调用方法Arrays.sort(x)后,数组x中的元素值依次是( A )。
    A) 2 7 8 12 35 B) 12 35 8 7 2
    C) 35 12 8 7 2 D) 8 7 12 35 2
    13、Frame对象默认的布局管理器是(B )。
    A、FlowLayout B、BorderLayout
    C、CardLayout D、null

    二、程序阅读题

    1、阅读下面的程序代码,并回答问题(1问3分,2问3分,共6分)。
    String s1 = new String(“abcde”);
    String s2 = new String(“abcde”);
    boolean b1= s1.equals(s2);
    boolean b2 = s1== s2;
    System.out.print(b1+" "+b2);
    程序段执行后,在命令行的输出结果如何?
    解释输出(1)的结果的原因?
    答案:在这里插入图片描述
    1 true false
    2 equals方法比较两个字符串的内容是否相等;运算符“= =”判断两个对象是否指向同一个引用,即是否为同一个对象。
    2、阅读下面的程序,并回答问题(问3分,问3分,共6分)。

    import java.io.*;
    public class Test {
        public static void main(String args[]) throws IOException {
            BufferedReader buf=new BufferedReader(
                        new InputStreamReader(System.in));        
            while(true) {
                String str = buf.readLine();
                if(str.equals("quit"))
                    break;
                int x=Integer.parseInt(str);
                System.out.println(x*x);
            }
        }  
    }
    

    编译运行上面的程序:
    从键盘输入10,回车后输出的结果如何?
    从键盘输入exit,回车后程序能正确执行吗?为什么?
    答案:
    100
    不能;因为方法Integer.parseInt(str)不能将字符串“exit”转化为整数,抛出异常。
    3、写出下面的程序编译、运行后的结果(6分)。

    public class Test{
         public static void main(String args[]) {
             new Student("Tom", 'm', 90, 88);
             new Student("Jack", 'm', 66, 89);
             new Student("Mary", 'f', 76, 86);
             System.out.println("name\tsex\tchinese\tenglish");
             Student.print();
         }
     }
     class Student {
         protected  String   name;
         protected  char     sex;
         protected  int      chinese;
         protected  int      english;
         protected  Student  next;
         static Student list; 
         Student (String name, char sex, int chinese, int english)   {
             this.name=name;
             this.sex=sex;
             this.chinese=chinese;
             this.english=english;
             this.next=list;
             list=this;
         }
         static void print() {
             Student friend=list;
             if (friend==null)
                 System.out.println("The list is empty.");
             else {
                 do{
                     System.out.println(friend.toString());
                     friend=friend.next;
                 }while(friend!=null);
             }
         }
         public String toString()  {
             return new String(name+"\t"+sex+"\t"+chinese+"\t"+english);
         }
     }
    

    答案:
    name sex chinese english
    Mary f 76 86
    Jack m 66 89
    Tom m 90 88

    《JAVA程序设计》期末考试试题 (六)

    一、填空题

    1.定义类的保留字是( class ),定义接口的保留字是( interface )。
    2.Socket通常也称为 ( 套接字 ),用于描述( IP地址 ) 和 ( 端口 )。
    3.线程的优先级在( 1 )至( 10 )之间,数值越大( 任务越紧急 )。
    4.构造方法是一种特殊的成员方法,构造方法名与( 类名 ) 相同。
    5.Java语言只允许单继承,指每个类只能有一个 ( 父类 )。
    6.Java源程序的扩展名是( .java ),经过编译后的程序的扩展名是( .class )。
    7. 在一个时间只能由一个线程访问的资源称为 ( 临界资源 ) 。访问临界资源的代码( 临界代码 )。
    8. 在多线程系统中,多个线程之间有 ( 同步 ) 和 ( 互斥 ) 两种关系。
    9、使用运算符( new ),创建类的对象,给对象分配内存空间。
    10、程序中实现多线程的方法有两种:继承Thread类和实现( Runnable )接口。
    11、同一个类中多个方法具有相同的方法名,不同的参数列表称为方法的( 重载 )。
    12、Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为( float )和( double )两种具体类型。
    13、假设x=1,y=2,则表达式x+y>=x*y的值是( true ),其数据类型是(布尔)。
    14、在Java的基本数据类型中,char型采用Unicode编码方案,这样无论是中文字符还是英文字符,都是占用( 2 )字节内存空间。
    15、用户自定义异常是通过继承_____ 异常 ____类或其子类。
    16、为了支持Java程序的数据库操作功能,Java语言采用了专门的Java数据库编程接口API,叫做 JDBC 。
    17、可以通过继承 Thread 类和实现 Runnable 接口来创建线程。

    二、选择题

    1.关于选择结构下列哪个说法正确? ( B )
    A.if语句和 else语句必须成对出现
    B.if语句可以没有else语句对应
    C.switch结构中每个case语句中必须用break语句
    D.switch结构中必须有default语句
    2.while循环和 do…while循环的区别是:  (D  )
    A.没有区别,这两个结构任何情况下效果一样
    B.while循环比 do…while循环执行效率高
    C.while循环是先循环后判断,所以循环体至少被执行一次
    D.do…while循环是先循环后判断,所以循环体至少被执行一次
    3.关于 for循环和 while循环的说法哪个正确? ( B )
    A.while循环先判断后执行,for循环先执行后判断。
    B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果
    C.两种循环任何时候都不可以替换
    D.两种循环结构中都必须有循环体,循环体不能为空
    4.下列修饰符中与访问控制无关的是 ( D )
    A.private    B.public
    C.protected D.final
    5. void的含义:  ( A )
    A.方法没有返回值    B. 方法体为空
    C.没有意义     D. 定义方法时必须使用
    6. return语句:  (C )
    A.只能让方法返回数值     B.方法都必须含有
    C.方法中可以有多句return    D.不能用来返回对象
    7.关于对象成员占用内存的说法哪个正确?  ( B )
    A.同一个类的对象共用同一段内存
    B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间
    C.对象的方法不占用内存
    D.以上都不对
    8.下列说法哪个正确?©
    A.不需要定义类,就能创建对象
    B.对象中必须有属性和方法
    C.属性可以是简单变量,也可以是一个对象
    D、属性必须是简单变量
    9.下列说法哪个正确?  ( A )
    A、一个程序可以包含多个源文件
    B、一个源文件中只能有一个类
    C、一个源文件中可以有多个公共类
    D、一个源文件只能供一个程序使用
    10.关于方法main()的说法哪个正确?( C )
    A.方法main()只能放在公共类中
    B main()的头定义可以根据情况任意更改
    C.一个类中可以没有main()方法
    D.所有对象的创建都必须放在main()方法中
    11.构造函数何时被调用?  ( A )
    A、创建对象时      B、类定义时
    C、使用对象的方法时   D、使用对象的属性时
    12. 抽象方法:  (  C)
    A、可以有方法体
    B、可以出现在非抽象类中
    C、是没有方法体的方法
    D、抽象类中的方法都是抽象方法 
    13.关于继承的说法正确的是:  (B  )
    A、子类将继承父类所有的属性和方法。
    B、子类将继承父类的非私有属性和方法。
    C、子类只继承父类public方法和属性
    D、子类只继承父类的方法,而不继承属性
    14.关于构造函数的说法哪个正确?  ( C )
    A、一个类只能有一个构造函数
    B、一个类可以有多个不同名的构造函数
    C、构造函数与类同名
    D、构造函数必须自己定义,不能使用父类的构造函数
    17.覆盖与重载的关系是  ( A )
    A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中
    B.覆盖方法可以不同名,而重载方法必须同名
    C.final修饰的方法可以被覆盖,但不能被重载
    D.覆盖与重载是同一回事
    18.关于接口哪个正确?  ( A )
    A、实现一个接口必须实现接口的所有方法
    B.一个类只能实现一个接口
    C.接口间不能有继承关系
    D.接口和抽象类是同一回事
    19.异常包含下列哪些内容?  (  A)
    A.程序执行过程中遇到的事先没有预料到的情况
    B.程序中的语法错误  
    C.程序的编译错误
    D.以上都是

    20. 对于已经被定义过可能抛出异常的语句,在编程时:  ( A )
    A、必须使用try/catch语句处理异常,或用throws将其抛出
    B.如果程序错误,必须使用 try/catch语句处理异常
    C.可以置之不理
    D.只能使用try/catch语句处理
    21. 字符流与字节流的区别在于(D  )
    A.前者带有缓冲,后者没有
    B.前者是块读写,后者是字节读写
    C. 二者没有区别,可以互换使用
    D. 每次读写的字节数不同
    22.下列流中哪个不属于字节流  (  D)
    A.FileInputStream
    B.BufferedInputStream
    C. FilterInputStream
    D. InputStreamReader

    三、程序填空题

    1.public class Sum{
    	public static void main(String [] args){
    		int j=10;
    		System.out.println("j is : "+j);
    		calculate(j);
    		System.out.println("At last, j is : "+j);
    	}
    static void calculate (int j){
    		for (int i = 0;i<10;i++)
    			j++;
    		System.out.println("j in calculate() is: "+j);
    	}
    }
    

    输出结果为:
    j is : (1)
    j in calculate() is : (2)
    At last j is : (3)
    答案:(1) 10; (2) 20; (3) 10。
    2. 按要求填空

    abstract class SuperAbstract{
    	void a(){}
    	abstract void b();
    	abstract int c(int i);
    }
    interface AsSuper
    {
    	void x();
    }
    abstract class SubAbstract extends SuperAbstract implements AsSuper
    {
    public void b(){}
    	abstract String f();
    }
    public class InheritAbstract extends SubAbstract{
    	public void x(){}
    	public int c(int i ) {}
    	public String f(){}
    	public static void main(String args[]){
    		InheritAbstract instance=new InheritAbstract();
    		instance.x();
    		instance.a();
    		instance.b();
    		instance.c(100);
    		System.out.println(instance.f());
    	} 
    }
    

    在以上这段程序中:
    抽象类有:SuperAbstract和 (1)  (写出类名)
    非抽象类有:       (2)  (写出类名)
    接口有:         (3)  (写出接口名)
    AsSuper中的x()方法是(4)方法,所以在InheritAbstract中必须对它进行(5)       
    答案:
    (1) SuperAbstract;(2) InheritAbstract;(3) AsSuper;(4) 抽象;(5) 覆盖和实现。
    3. 按注释完成程序
    public class Leaf {
    private int i = 0; //此属性值用于检验
    Leaf increment(){ //定义方法increment(),返回值是Leaf类的对象
    i++;
    return (1) ;//将当前对象的地址作为返回值返回
    }
    void print() {
    System.out.println(" i = " + i);
    }
    public static void main(String args[]){
    Leaf x = (2); //创建Leaf类的对象x
    x.increment().increment().increment().print();
    }//多次调用方法increment(),返回的都是x的地址,i 值表示调用次数
    }
    输出结果为 i = (3)
    答案:
    (1) this; (2)new Leaf();(3) 3
    4. 按注释提示完成文件复制的程序
    //FileStream源代码如下:
    import java.io.*;
    class FileStream {
    public static void main(String args []) {
    try {
    File inFile = new File(“file1.txt”); //指定源文件
    File outFile = new File(“file2.txt”); //指定目标文件
    FileInputStream fis =(1);
    FileOutputStream fos = new FileOutputStream(outFile);
    int c;
    //逐字节从源文件中输入,再输出到fos流
    while ((c = fis.read ())!=-1)
    (2);
    fis.close();
    fos.close();
    }
    catch (Exception e) {
    System.out.println("FileStreamsTest: "+e);
    }
    }
    }
    答案:
    (1) new FileInputStream(inFile);
    (2) fos.write©;
    5. 阅读程序,给出结果:

    // AbstractClassDemo.java源代码如下:
    abstract class Shape {     //定义抽象类Shape和抽象方法display
    	abstract void display();
    }
    class Circle extends Shape {
    	void display() {		//实现抽象类的方法
    		System.out.println("Circle");
    	}
    }
    class Rectangle extends Shape {
    	void display() {    //实现抽象类的方法		
    System.out.println("Rectangle");
    	}
    }
    class Triangle extends Shape {
    	void display() {  	//实现抽象类的方法
    		System.out.println("Triangle");
    	}
    }
    public class AbstractClassDemo{
    	public static void main(String args[]){
    		(new Circle()).display();	//定义无名对象来调用对应的display方法
    		(new Rectangle()).display();
    		(new Triangle()).display();
    	}
    

    }
    输出结果是 ?
    答案:(1) Circle; (2) Rectangle; (3) Triangle。

    《JAVA程序设计》期末考试试题 (七)

    一、选择题

    1. 请说出下列代码的执行结果 : (B)
      String s = “abcd”;
      String s1 = new String(s);
      if (s = = s1) System.out.println(“the same”);
      if (s.equals(s1)) System.out.println(“equals”);
      A. the same equals B. equals
      C. the same D. 什么结果都不输出

    2. 下列有关 Java 中接口的说法哪个是正确的? (B)
      A. 接口中含有具体方法的实现代码
      B. 若一个类要实现一个接口,则用到 “implements” 关键字
      C. 若一个类要实现一个接口,则用到“ extends ”关键字
      D. 接口不允许继承

    3. 下列代码的执行结果是什么? (B)
      String s1 = “aaa”;
      s1.concat(“bbb”);
      System.out.println(s1);
      A. The string “aaa”.
      B. The string “aaabbb”.
      C. The string “bbbaaa”.
      D. The string “bbb”.

    4. 如果有一个对象 myListener ( 其中 myListener 对象实现了 ActionListener 接口 ), 下列哪条语句使得 myListener 对象能够接受处理来自于 smallButton 按钮对象的动作事件 ? ©
      A. smallButton.add(myListener);
      B. smallButton.addListener(myListener);
      C. smallButton.addActionListener(myListener);
      D. smallButton.addItem(myListener);

    二.读程序题

    1. 读下列代码,说出这段程序的功能。
      import java.io.;
      public class Test{
      public static void main( String [] argv) {
      try {
      BufferedReader is =
      new BufferedReader( new InputStreamReader(System.in));
      String inputLine;
      While ((inputLine = is.readLine ())!= null) {
      System.out.println(inputLine);
      }
      is.close();
      }catch (IOException e) {
      System.out.println("IOException: " + e);
      }
      }
      }
      答案:读取键盘输入,显示到屏幕上,直到键盘输入为空为止。
      2、 读下列程序,写出正确的运行结果。
      class test {
      public static void main (String [] args ){
      int x=9, y;
      if (x>=0)
      if (x>0)
      y=1;
      else y=0;
      else y=-1;
      System.out.println(y);
      }
      }
      答案:1
      3、以下程序的输出结果为____ mainbord:华硕 cpu:Intel
      public class Computer
      {
      String mainbord,cpu;
      public Computer(String s1,String s2)
      {
      mainbord=s1;
      cpu=s2;
      }
      public static void main(String[]args)
      {
      Computer c=new Computer(“华硕”,“Intel”);
      System.out.println(“mainbord:”+c.mainbord+" cpu:"+c.cpu);
      }
      }
      4、下列程序的运行结果是
      s = 180_____。
      import java.io.
      ;
      public class abc
      {
      public static void main(String args[ ])
      { int i, s = 0 ;
      int a[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 };
      for ( i = 0 ; i < a.length ; i ++ )
      if ( a[i]%3 = = 0 ) s += a[i] ;
      System.out.println(“s=”+s);
      }
      }
      5、 读程序,写出正确的运行结果。
      public class Father{
      int a=100;
      public void miner(){
      a–;
      }
      public static void main(String[] args){
      Father x = new Father();
      Son y = new Son();
      System.out.println(y.a);
      System.out.println( y.getA());
      y.miner();
      System.out.println(y.a);
      System.out.println(y.getA());
      }
      }
      class Son extends Father{
      int a = 0;
      public void plus(){
      a++;
      }
      public int getA() {
      return super.a;
      }
      }
      答案:
      0 100 0 99

    三 . 简答题

    1. Java语言的特点。
      答:
      简单性:Java风格类似于C++,但它摒弃了C++中容易引起程序错误的地方
      面向对象:Java语言的设计是完全面向对象
      分布式:
      解释执行:
      健壮性:Java提供自动垃圾回收机制,异常处理机制,进行严格的类型检查
      平台无关性:
      安全性
      多线程
      动态性

    2. 请描述 AWT事件模型。
      答:
      结合AWT事件模型并举例来说:
      import java.awt.event.*;

    3. 监听对象必须实现对应事件监听器的接口
      class MyFirstFrame extends Frame implements ActionListener
      {…}
      2.明确事件监听器的接口形式
      public void actionPerformed ( ActionEvent event) {…}

    4. MyFirstFrame 类必须实现接口ActionListener中的所有方法。

    5. 注册监听对象.
      为了把MyFirstFrame对象注册为两个按钮的事件监听对象,必须在MyFirstFrame
      的构造函数中添加语句如下:
      cancelButton.addActionListener(this);
      okButton.addActionListener(this);

    6. 在 Java中,怎样创建一个线程?
      答:
      1、定义类来实现Runnable接口
      class TestThread implements Runnable {
      public void run() { …}
      }
      2、继承Thread类来实现
      class TestThread extends Thread {
      TestThread(String name) {
      super(name);
      start();
      }
      public void run() {…}
      }

    展开全文
  • Java语言程序设计》✍基础知识整理

    万次阅读 多人点赞 2020-12-29 09:01:48
    Java语言程序设计 第1章 Java语言概述 Java语言比较特殊,它既是编译型语言又是解释型语言。Java的源程序代码必须通过编译器将其编译为Java字节码(byte code)后才能运行,所以被称为编译型语言。但Java字节码不能...

    Java语言程序设计

    第1章 Java语言概述

    Java语言比较特殊,它既是编译型语言又是解释型语言。Java的源程序代码必须通过编译器将其编译为Java字节码(byte code)后才能运行,所以被称为编译型语言。但Java字节码不能直接运行,只能在Java虚拟机环境中被解释执行,因此称之为解释型语言

    Java程序是由虚拟机负责执行,并非是操作系统,这样做的优点是可以实现程序的跨平台运行

    Java语言的特点

    1. 简单性

      与C++语言相比,Java语言有着突出的特点,摒弃了C++语言中不宜理解的部分,减少了编程的复杂性,例如去掉了指针变量、结构体、运算符重载、多重继承等复杂特性

    2. 面型对象

      除了基本数据类型外,都是对象,程序代码以类的形式组织,由类来定义对象的各种属性和行为

    3. 平台无关性

    4. 安全性

      实时内存分配及布局来防止程序员直接修改物理内存布局;通过字节码验证器对字节码进行检验,防止网络病毒及其他非法代码侵入;异常处理机制

    5. 分布式

      分布式包括数据分布和操作分布。数据分布是指数据可以分散在不同主机之上,而操作分布是指把一个计算任务分散到不同主机上进行操作

    6. 多线程机制

      并行处理多项任务

    7. 内存管理机制

      自动垃圾回收机制对内存进行管理

    Java开发工具包(Java Development Kit, JDK

    Java运行环境工具JRE(Java Runtime Environment)

    第2章 Java语言基础

    2.1 标识符

    Java程序使用的各种对象,如变量、方法、类,数组等都要有名字,这些名字称为标识符(Identifier),标识符需遵循如下语法规则

    • 标识符只能包含字母、数字、下划线(_)和美元符号($)
    • 标识符必须以字母、下划线和美元符号开头

    标识符被Java语言赋予特定含义的称为保留字(Reserved Word),而在保留字中又有一些标识符对Java的编译器有特殊的意义,它们用来表示一种数据类型,或者表示程序的结构等,称之为关键字(Keyword)

    Java语言中共有53个保留字,其中50个为关键字(goto和const目前尚未使用),另外3个保留字是值,分别为true,false和null

    2.2 数据类型

    Java的数据类型分为基本数据类型引用数据类型两种。基本数据类型在声明变量后会立刻分配数据的内存空间,数据占用的空间大小是固定的,与软硬件环境无关;引用数据类型在声明变量时不会分配数据的内存空间,只会分配一个空间来存储数据的内存地址。

    Java语言共有8种基本数据类型和3种引用数据类型,如下图

    在这里插入图片描述

    基本数据类型对应的存储需求如下

    类型存储需求类型存储需求
    byte1字节float4字节
    short2字节double8字节
    int4字节
    long8字节
    • 通常情况下,程序中出现的浮点型数值默认为double类型,如果要将一个浮点型数值指定为float类型,需要在数值后加字母F或f

    • 整型常量,程序中出现的整型常量常被看作int型,十进制的整型常量以非0数字开头,八进制以数字0开头,十六进制以0x或者0X开头,二进制以0b或者0B开头

    • 自动类型转换都是将低精度数据转换为高精度数据,但在实际情况中有时需要将高精度数据转换为低精度数据,如将double型转化为int型,此时需要强制类型转换完成。强制类型转换的格式为 (目标类型)变量名

    • 当x,y均为浮点型,进行相等比较时,要避免使用x==y,可以写为Math.abs(x-y)<1e-6

    • Java语言中,位运算符只能用于整型和字符型数据

    • 条件运算符是Java语言中唯一的三目运算符,其格式为 表达式1?表达式2:表达式3

    2.3 流程控制

    • else不能单独使用,与离它最近的if配对

    • switch语句中每个case后面的语句块都应该有break语句,若缺少break,则会在执行某一个语句块之后自动将其后面的所有语句块都执行一遍

    • do-while后面的分号”;“不能少

    • while语句多用于循环次数不定的情况,在不满足条件时不执行;

      do-while语句多用于至少执行一次循坏体的情况;

      for语句多用于循环次数固定的情况

    • foreach循环中只允许访问数组元素,而不允许修改数组元素

    2.4 数组

    • Java语言中,数组是引用数据类型

    • 栈内存和堆内存

      栈内存中存储基本数据类型、对象引用变量(对象名)和数组引用变量(数组名),当超出变量的作用域之后,Java会自动释放这些变量占用的内存空间,该内存空间可以立刻被另作它用

      堆内存用于存储数组和对象的数据。在堆内存中分配的内存,由Java虚拟机负责回收管理。在堆内存中创建一个数组或者对象时,一般会将其在堆内存中的首地址赋值给栈内存中声明的变量,这个变量就是数组或者对象的引用变量。这样,就可以使用栈内存中的引用变量来访问堆内存中的数组或者对象,引用变量相当于为数组或者对象起的一个别名,或者代号

    • Java语言在数组声明时并不为数组元素分配空间,但只是在栈内存中为数组名(引用变量)分配了空间,但值未定

    • 数组拷贝

      Arrays.copyOf();
      Arrays.copyOfRange();
      System.arraycopy();
      

    2.5 字符串

    String s1 = "Java";
    String s2 = new String("Java");
    

    变量s1和s2都表示字符串“Java",但是两者有区别。s1指向的字符串”Java"存储在字符串常量池,s2指向的字符串“Java"存储在堆内存

    Java虚拟机为了减少字符串常量池的重复创建,开辟了一个特殊的内存区域,称为字符串常量池。当以字符串常量池形式来创建字符串对象时,Java虚拟机首先会对这个常量进行检查,如果字符串常量池中存在相同内容的字符串对象,则将这个对象引用返回;否则,创建一个新的字符串对象,然后将这个对象放入字符串常量池,并返回该对象引用。第2种形式创建的字符串对象,会在堆内存中为其分配空间,并且即使字符串对象与之前创建的字符串对象内容相同仍然会再次分配空间。总之,使用new关键字创建字符串对象一定会分配新的内存空间

    String类

    • equals()方法是判断两个字符串内容是否相同,而“==”则是判断两个字符串是否为同一实例,即在内存中的存储空间是否相同
    • 调用的方法不会改变字符串本身
    • isEmpty()方法适用于字符串已经分配了内存空间时使用。当字符串变量为null时,并没有为其分配内存空间,不能使用isEmpty()方法

    StringBuffer类

    • StringBuffer类在进行字符串处理时,不生成新的对象,在内存使用上要优于String类
    • 在对字符串进行插入、删除等操作,使用StringBuffer更合适

    StringBulider类

    同StringBuffer类似

    【三者比较】

    String与StringBuffer二者区别

    相同点:

    • 同为用来处理字符串
    • length(),toString(),charAt(),subString()方法,功能相同
    • 字符索引从0开始

    不同点:

    • String类 不可变类,内容不可修改,而诸多修改方法只是在创建新的字符串

    StringBuffer可变类 ,内容可以修改,诸多方法是在修改内容

    • String类 重写了Object类的equals方法

    ​ StringBuffer 没有重写

    • String和StringBuffer都重写了Object的toString()方法,String返回实例本身,StringBuffer返回一个内容相同的String对象的引用

    • String对象可以用操作符“+”连接。

      运行速度:StringBuilder > StringBuffer > String

      安全性:StringBuilder是线程不安全的,而StringBuffer是线程安全的

    2.6 输入/输出

    Scanner类的成员方法nextLine()next()都可以读取字符串,但它们之间有着本质区别。next()方法一定要读取到有效字符(非空格、非Tab键、非Enter键)后才能完成输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等分隔符,next()方法会自动将其忽略。只有在输入有效字符之后,next()方法才能将其后输入的空格键、Tab键或Enter键等视为分隔符。所以next()方法不能得到带空格的字符串。而nextLine()方法的结束符只能是Enter键,即nextLine()方法返回的是Enter键之前的所有字符,可以得到带空格的字符串

    //import java.io.IOException;
    //import java.util.Scanner;
    class ShowIO{
    	public void showIO() {
    		Scanner sc = new Scanner(System.in);
    		int a    = sc.nextInt();
    		float b  = sc.nextFloat();
    		double c = sc.nextDouble();
    		String str = sc.next();
    		char cc = 0;
    		try {
    			cc = (char)System.in.read();   //字节形式
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    	public void seriesRead() {
    		Scanner sc = new Scanner(System.in);
            //连续读入直到输入“0”结束
    		while(!sc.hasNext("0")) {
    			int x = sc.nextInt();
    			System.out.println(Integer.toBinaryString(x));
    		}
    	}
    }
    

    第3章 类与对象

    面向对象程序设计有三个基本特性:封装、继承、多态

    • 封装就是把客观事物经过抽象封装成类,类可以设定自己的数据和方法的访问权限,即对外公开的程度和范围。通过访问权限设定内部数据和代码得到了不同级别的保护
    • 继承可以使用已有类的功能,并在无需重新编写已有类的情况下对这些功能进行扩展
    • 多态是指不同类的对象对同一消息做出不同的响应。多态机制使具有不同内部结构的对象可以共享相同的外部接口

    类由数据成员与方法成员封装而成,其中数据成员表示类的属性,方法成员表示类的行为。Java语言把数据成员称为域变量、属性、成员变量等,而把方法成员也称为成员方法

    3.1 类修饰符

    类的实例化结果是对象

    类修饰符说明
    public将一个类定义为公共类,该类可以被任何类访问
    abstract将一个类定义为抽象类,不可以创建它的对象
    final将一个类定义为最终类,他不能被其他类继承
    缺省只有在同一个包中的类才能访问这个类

    3.2 成员变量修饰符

    成员变量修饰符说明
    public公共访问修饰符,该变量为公共的,可以被任何类的方法访问
    private私有访问修饰符,该变量只允许本类的方法访问,其他任何类(包括子类)中的方法均不能访问
    protected保护访问修饰符,该变量可以被本类、子类及同一个包中的类访问,在子类中可以覆盖此变量
    缺省缺省访问修饰符,该变量在同一个包中的类可以访问,其他包中的类不能访问
    final最终修饰符,该变量的值不能被修改
    static静态修饰符,该变量属于类,被类的所有对象共享,即所有对象都可以使用该变量
    transient临时修饰符,该变量在对象序列化时不被保存
    volatile易失修饰符,该变量可以同时被几个线程控制和修改

    3.3 成员方法修饰符

    成员方法修饰符说明
    public公共访问修饰符,该方法为公共的,可以被任何类的方法访问
    private私有访问修饰符,该方法只允许本类的方法访问,其他任何类(包括子类)中的方法均不能访问
    protected保护访问修饰符,该方法可以被本类、子类及同一个包中的类访问
    缺省缺省访问修饰符,该方法在同一个包中的类可以访问,其他包中的类不能访问
    final最终修饰符,该方法不能被重载
    static静态修饰符,该方法属于这个类,不需要实例化就可以使用
    abstract抽象修饰符,该方法只有方法原型,没有方法实现,需要在子类中实现
    synchronzied同步修饰符,在多线程程序中,改修饰符用于在运行前,对它所属的方法加锁,以防止其它线程的访问,运行结束后解锁
    native本地修饰符,该方法的方法体是用其它语言在程序外部编写的

    3.4 成员变量初始值

    数据类型初始值数据类型初始值
    byte0float0.0f
    short0double0.0
    int0char‘\0’
    long0Lbooleanfalse
    引用类型null

    3.5 this引用

    关键字this用来指代当前对象本身。this是系统资源,只允许用户读而不允许写,它存储着当前对象的地址

    • 在构造方法中调用其他的构造方法时,只能使用this引用且必须位于构造方法的第一行

    • 构造方法的形式参数与类的成员变量名字相同时,需要使用this引用来区分两者

    • 链式调用中返回对象本身,链式调用是指在一个语句中连续调用多个方法,如obj.fa().fb(),这时要求fa()方法的返回值必须是一个对象,fb()方法是该返回值对象的成员方法

      return this;

    3.6 构造方法

    • 构造方法(constructor)是在对象被创建时用于初始化成员变量的方法。构造方法的方法名必须与类名相同,且没有返回值,也不能使用void修饰符。构造方法允许有参数,参数一般与成员变量相对应

    • 通常情况下需要自定义不带参数的构造方法,以防止错误发生

    • 在构造方法中要调用其他构造方法时,就要采用显示调用方法。此时必须通过this引用来完成,并且必须是构造方法中的第一条语句

      class Person{
          private String name;
          private int age;
          private char sex = '男';
          Person(){}
          Person(String name, int age, char sex) {
              this.name = name;
              this.age = age;
              this.sex = sex;
          }
          Person(String name) {
              this(name, 18, '男');
          }
      }
      

    3.7 静态成员

    【静态成员变量】

    使用static来修饰成员变量,称为静态成员变量(简称静态变量)或类变量。静态变量在内存空间中只有一份,是一个公共的存储空间,类的所有对象都可以访问它。静态变量可以通过类名访问,也可以通过对象名访问,形式为

    (1)类名.静态变量

    (2)对象名.静态变量

    【静态成员方法】

    用static修饰的成员方法是类的静态成员方法(静态方法),也称为类方法。在静态方法中可以访问方法内部定义的局部变量、类的静态变量和静态方法,不能访问类的非静态变量。静态方法的调用方式也有两种

    (1)类.静态方法()

    (2)对象.静态方法()

    静态方法不依赖于类的对象而存在,即使类的对象不存在,它仍然可以被调用。假设静态方法能够访问非静态变量,那么当没有创建任何对象时,通过类调用静态方法,程序无法获得非静态变量,必然出错。所以静态方法中不能访问非静态变量,而在静态方法中不能使用this

    3.8 其他

    匿名对象

    • 一个对象创建后只使用一次,可以是成员方法调用也可以是成员变量访问‘
    • 调用方法时,将匿名对象作为实参传递给该方法,例如fun(new Person())

    】package,通常将功能相关的类放在同一个组内,这个组就称为包

    方法重载】方法重载是指定义多个同名的方法,但要求这些方法的参数列表不能相同,即参数个数不同,参数类型不同或者参数的顺序不同。Java语言中不允许参数个数或者参数类型完全相同,而只有返回值数据类型不同的方法重载

    对象间的赋值

    Java语言中对象间的赋值不会重新创建一个对象,只是让两个对象名指向同一块内存区域。如果要完成对象间整体的拷贝,需要用到clone()方法

    对象数组初始化

    Person[] pers = {new Person("Tom", 18, '男'), new Person("Lily", 18, '女')};
    

    3.9 继承(extends)

    继承是面向对象另一个显著的特性。继承是从已有的类中派生出新类,被继承的类称为父类或超类(superclass),由继承而得到的类称为子类(subclass)。子类能继承父类的数据属性和行为,并能扩展新的能力。

    与C++语言不同,Java语言不支持多重继承机制,一个类只允许有一个直接父类。父类是所有子类的公共成员的抽象,而每个子类则是父类的特殊化,是对公共成员变量和方法在功能、内涵方面的扩展和延伸。子类不能选择性地继承父类,但是子类继承父类的成员变量和成员方法之后,可以对其进行修改或重写,也可以添加父类所没有的成员变量和方法

    在创建子类对象时除了执行子类的构造方法外,还需要调用父类的构造方法,遵循原则如下:

    • 对于父类的含参数构造方法,子类可以在自己的构造方法中使用super调用它,但super调用语句必须是子类构造方法中的第一个可执行语句
    /*
    子类名(参数列表){
        super(参数列表);
        语句块
    }
    */
    
    • 子类在自己的构造方法中如果没有用super明确调用父类的构造方法,则在创建子类对象时,将自动先执行父类的无参构造方法,然后再执行子类的构造方法
    • 当子类未定义构造方法时,创建对象时将无条件地调用父类的无参构造方法

    子类访问父类成员

    在子类中,使用super不但可以访问父类的构造方法,还可以访问父类的成员变量和成员方法。子类访问父类成员的格式为

    super.成员变量

    super.成员方法();

    需要注意的是,使用super()不能访问父类的private成员,但是允许访问protected成员。如果某个类需要作为父类,那么它的成员变量一般也最好声明为protected

    3.10 类的多态

    Java语言的多态性分为静态多态性动态多态性。静态多态性是指在程序编译时系统就能根据方法的调用语句确定执行哪个方法体,Java语言采用重载实现静态多态。动态多态是指系统无法在程序编译时确定,必须等到程序运行时才能确定执行哪个方法体

    Java语言中,动态多态性的实现需要3个条件:

    1. 类之间有继承关系
    2. 类之间存在方法覆盖
    3. 父类引用指向子类对象

    方法覆盖】在子类中调用父类被覆盖的成员方法时,只能使用super关键字

    final关键字

    • final Map,List可以修改内容,final 常量不能修改。map和list对应是栈中存储的地址,final表示地址不能修改,但是地址对应的内存区域的值是可以修改的
    • 对List或者map的add或put操作,没有修改引用。而对于字符串的修改,是整个引用都要指向一个不同的字符串。
    • map和list只是个地址,final表示地址不可以修改,但地址指向的内容可以修改
    • 用final修饰的方法可以重写但不能重载

    上溯造型

    类之间的继承关系使子类具有父类所有成员变量和成员方法,这就意味着父类的成员可以在子类中使用,所有子类对象也是父类对象,即子类对象既可以作为本类的对象也可以看做父类的对象。这样,所有从一个父类派生的各子类都可以作为父类的类型。将一种子类对象的引用转换为父类对象的引用,转换方向是从下至上,因此称为上溯造型

    3.11 抽象类

    抽象类不能创建对象
    abstract class 类名{
        声明成员变量;
        返回类型 方法名(参数表){
          ······
        }
        abstract 返回类型 方法名(参数表);
    }
    
    • 包含抽象方法的类一定是抽象类
    • 抽象类的子类必须实现父类中的所有抽象方法才能成为普通类去创建对象,即抽象方法必须被子类的方法所覆盖,否则子类必须继续将自己声明为抽象类

    3.12 接口

    接口与类都是引用类型,接口的定义格式为

    [public] interface 接口名称 [extends 父接口名列表]{
        [public][static][final] 数据类型 成员变量名 = 常量;
        ······
        [public][abstrsct] 返回类型 方法名(参数列表)
        ······
    }
    

    其中方括号是默认选项,可以省略。也就是说,接口中的成员变量都是静态常量,成员方法都是公用抽象方法

    实现接口的格式为

    class 类名称 implements 接口名表{
        ······
    }
    

    一个类实现接口时应该注意以下问题:

    • 一个类在实现接口的抽象方法时,必须使用完全相同的方法原型
    • 一个类在实现接口的抽象方法时,必须显式使用public修饰符
    • 一个类必须实现指定接口的所有抽象方法,否则只能将自己声明为抽象类
    • 一个类可以实现多个接口,依次用逗号隔开即可

    接口的继承

    接口与类相似,也可以有继承关系以完成更复杂的功能。接口也通过关键字extends完成继承,但与类继承不同的是,子接口允许继承多个父接口。子接口继承父接口之后,自动拥有父接口中的常量和方法。如果子接口中定义了与父接口相同的常量或者方法,则父接口中的常量被隐藏,方法被覆盖

    接口的应用

    在面向对象的程序设计中,一个类可以有多个父类,该子类可以继承所有父类的成员,称为多重继承。Java语言不支持类的多重继承,但可以利用接口间接地解决多重继承的问题

    一个类只能继承一个父类,但是它可以同时实现多个接口。一个类实现多个接口时,在implements子句中用逗号分隔开各个接口名,定义格式为

    [public] class 类名 extends 父类名 implements 接口名1,接口名2,···,接口名n{
        ······
    }
    

    接口与抽象类的作用相同,但是两者有着本质区别:

    • 抽象类可以拥有普通成员方法的实现,而接口中只能包含抽象方法
    • 抽象类的抽象方法访问类型可以是public,protected或默认类型,但接口中的抽象方法只能是public类型的,并且默认即为public abstact类型
    • 抽象类中可以有普通成员变量,而接口中不能有普通成员变量,接口中定义的成员变量默认为public static final,且只能是public static final,同时接口中的成员变量必须显式初始化
    • 一个类可以实现多个接口,但只能继承一个抽象类

    3.12 内部类

    在一个类的内部再定义一个类,这个类称为内部类,包含内部类的类称为外部类。定义内部类的目的往往是供外部类使用,并不对外公开。Java语言中内部类分为内部成员类、静态嵌套类、方法内部类和匿名内部类。

    成员内部类

    内部类不能与外部类同名。但内部类的成员变量和成员方法可以与外部类相同。

    内部类的成员方法可以直接访问外部类的成员变量和成员方法,包括访问权限为private的成员,使用起来非常方便,这是内部类的主要优点。但外部类要访问内部类的成员变量和成员方法时,则需要创建内部类的对象,然后通过该对象来访问内部类的成员

    外部类名.内部类名 对象名 = new 外部类名().new 内部类名();
    Outer.Inner in = new Outer().new Inner();
    
    • 当内部类的成员变量与外部类同名时,内部类成员方法访问的变量是内部类自身的成员变量,外部类成员变量会被隐藏,但可以通过”外部类.this.成员变量“来访问

    匿名内部类

    匿名内部类是一种没有名字的内部类,只能使用一次。使用匿名类必须继承一个父类或实现一个接口,其格式为

    new 父类构造方法{
        匿名类类体
    }new 接口名(){
        匿名类类体,实现接口中的全部方法
    }
    

    3.13 Java语言中的常用类

    • Object类是java.lang包中的一个类,Java语言中所有类都直接或者间接地继承该类。一个类在没有明确给出父类的情况下,Java语言会自动把Object类作为该类的父类
    • String、Integer、Double等类覆盖了Object中的equals()方法,让它不再比较其对象在内存中的地址,而是比较对象中实际包含的内容
    • String、Vector、List、Map、Set、Queue、Stack的使用

    包装类

    Java语言是一个面向对象的语言,但是Java中的基本数据类型却不是对象,这在实际用时存在很多的不便。为了解决这个问题,Java语言为每个基本数据类型设计了一个对应的类,称为包装类(Wrapper Class),也可以翻译为外覆类或数据类型类

    基本数据类型与包装类对应表

    基本数据类型包装类基本数据类型包装类
    byteBytebooleanBoolean
    shortShortcharCharacter
    intIntegerfloatFloat
    longLongdoubleDouble

    包装类的主要用途体现在以下两方面:

    • 作为和基本数据类型对应的类类型存在,方便操作
    • 包装类中包含每种基本数据类型的相关属性,如最大值、最小值等,以及相应的操作方法

    基本数据类型与包装类的不同点体现在以下几个方面

    • 在Java语言中除了8种基本数据类型外,其它的数据类型都是对象
    • 包装类对象需要用new来创建
    • 存储方式及位置不同,基本数据类型变量直接存储变量的值保存在栈空间,而包装类对象则需要通过引用指向实例,具体的实例保存在堆空间中
    • 使用方式不同,比如集合类联合使用时只能使用包装类`

    第4章 异常处理

    4.1 异常的概念

    错误与异常

    • 错误(Error): 程序在运行过程中发生的由硬件、操作系统、Java虚拟机等导致的严重问题,如内存溢出等。错误无法由程序本身解决,只能依靠外界干预,Java程序对错误一般不做处理
    • 异常(Exception):有些问题不那么严重,应用程序可以自行修复,如运算时除数为0,数据超出应有的范围,或者欲装入的类文件不存在等,这些问题称为异常。Java程序能够对异常进行处理,使程序继续运行或者平稳结束

    运行时异常与检查型异常

    • 运行时异常(Runtime Exception):指的时在运行时被检查的异常,如运算时除数为0、数组下标越界等。这类异常一般由程序自身问题引起,产生比较频繁,系统为其配备了缺省的异常处理程序,Java程序对这类异常可不做处理,当然,必要时也可以处理
    • 检查型异常(Checked Exception):也称非运行时异常,指的是程序中可预知的、常常由外部问题引起的异常,如打开文件时文件不存在,输入数据时类型不匹配等。检查型异常如果不处理就无法通过编译,也就不能运行

    4.2 异常类及异常处理方式

    异常类

    • Error类:该类代表错误,指的是程序本身无法恢复的意外情况,不要求程序进行处理
    • Exception类:该类代表异常,指的是程序本身可以处理的意外情况

    【Exception类常用的构造方法和成员方法】

    方法原型说明
    public Exception()构造方法,创建一个异常对象
    public Exception(String message)构造方法,创建一个带有指定信息的异常对象
    public String toString()返回当前异常对象的信息
    public String getMessage()返回当前异常对象的信息
    public void printStackTrace()打印当前异常对象使用栈的轨迹

    Exception类的子类分为两种:

    • 运行时异常类。Runtime Exception
    • 检查型异常类。如ArithmeticException,NullPointerException,ClassCastException…

    异常处理方式

    异常处理可以看做是一种控制结构。当异常发生时,将停止程序的正常执行顺序,转向异常处理代码。当异常发生时,称为抛出异常(throws)。当执行与异常匹配的异常处理代码时,称为捕获异常(try-catch-finally)

    4.3 捕获异常

    • 多重catch块捕获
    • 使用或(|)进行多重捕获
    • 嵌套的try-catch-finally语句
    try{
        //语句序列
    }catch (ExceptionType1 e) {
        //语句序列
    }catch (ExceptionType2 | ExceptionType3 e) {
        //---
    }finally {
        //语句序列
    }
    

    使用try-catch-finally语句时,应该注意以下几点:

    • try块只能有一个,catch块可以有0到多个,finally块可以有、也可以没有。以下这几种组合都是合法的:

      try-catch-finally,try-catch,try-finally

    • catch块尽量使用最低级别的异常子类来捕获异常,这样能够更详细地了解问题所在

    • 将捕获子类异常的catch块放在前面,将捕获父类异常的catch块放在后面

    • 可以使用一个catch块来捕获多种类型的异常,此时它的异常参数类型应该是更一般的异常类型,但这种方式使程序不能判断异常的具体类型,无法做有针对性的处理

    • 如果try块中抛出的异常对象没有被某个catch块捕获,就会传给Java虚拟机,由系统来进行异常处理,终止程序的运行

    4.4 声明异常

    使用throws声明异常,异常列表由异常类的类名组成,有多个异常类时,以逗号分隔。

    当一个方法可能抛出异常时,可以采用多种方式来处理:

    • 该方法自行捕获异常

      class ExceptionHandle{
      	public int calculate(int a, int b) {
      		int result = 0;
      		try {
      			result = a / b;    //0做除数,抛出异常
      		} catch (ArithmeticException e) {
      			System.out.println("发生算数异常:" + e.toString());
      		}
      		return result;
      	}
      }
      
      public class Main {
      	public static void main(String[] args){
      		ExceptionHandle eh = new ExceptionHandle();
      		int result = eh.calculate(6, 0);
      		System.out.println(result);
      	}
      }
      
    • 该方法只是声明异常,由其调用方法来捕获异常

      class ExceptionHandle{
      	public int calculate(int a, int b) throws ArithmeticException {
      		int result = 0;
      		result = a / b;    //0做除数,抛出异常
      		return result;
      	}
      }
      
      public class Main {
      
      	public static void main(String[] args){
      		ExceptionHandle eh = new ExceptionHandle();
      		try {
      			int result = eh.calculate(6, 0);
      			System.out.println(result);
      		} catch (ArithmeticException e) {
      			System.out.println("发生算数异常:" + e.toString());
      		}
      	}
      }
      
    • 该方法及其调用方法都声明异常,最后由Java虚拟机捕获异常

      class ExceptionHandle{
      	public int calculate(int a, int b) throws ArithmeticException {
      		int result = 0;
      		result = a / b;    //0做除数,抛出异常
      		return result;
      	}
      }
      
      public class Main {
      	public static void main (String[] args) throws ArithmeticException {
      		ExceptionHandle eh = new ExceptionHandle();
      		int result = eh.calculate(6, 0);
      		System.out.println(result);
      	}
      }
      

    4.5 Java异常处理机制

    异常处理过程包括异常的抛出和异常的捕获。程序抛出异常时,会生成一个代表该异常的对象,并把它提交给Java虚拟机。抛出异常后,Java虚拟机从生成异常对象代码开始,沿方法的调用栈逐层回溯来查找与该异常匹配的异常处理代码。如果找到了就把异常对象传给该方法,执行相应的异常处理代码,这就是异常的捕获。如果没有找到相应的异常处理代码,最后Java虚拟机将捕获它,输出相应的错误信息,终止程序的运行。

    若方法的调用顺序是方法A->方法B->方法C->方法D,查找异常处理代码(catch块)的顺序是方法D->方法C->方法B->方法A

    需要注意的是,一个方法被覆盖时,覆盖它的方法只能抛出相同的异常或该异常的子类,即不能抛出新的异常

    4.6 人为抛出异常

    人为抛出异常的格式为 throw 异常对象

    public class Main {
    	public static void main (String[] args) {
    		int age;
    		Scanner sc = new Scanner(System.in);
    		try {
    			age = sc.nextInt();
    			if(age < 0 || age > 150) {
    				throw new Exception();  //人为抛出异常对象
    			}
    			System.out.println("年龄是" + age + "岁");
    		} catch (InputMismatchException e) {
    			System.out.println("输出的数据类型不匹配");
    		} catch (Exception e) {         //可捕获人为抛出的异常对象
    			System.out.println("输入数据应该在0-150之间");
    		}
    		System.out.println("程序结束");
    	}
    }
    

    4.7 自定义异常类

    自定义异常类的一般形式为

    class MyException extends Exception{
        //······
    }
    
    class OutOfRangeException extends Exception {
    	OutOfRangeException() {
    		super("数值不在正常范围内");  //调用父类Exception的构造方法
    	}
    }
    //...  catch (OutOfRangeException e)  ....
    

    第5章 Java输入输出流

    Java输入/输出流

    第6章 Java多线程

    『Java多线程』基础之基础


    由于内容过多,且整理发表时间不一样,另外两章见发表连接(2020/1/8编辑)
    参考资料:《Java语言程序设计实用教程》主编 王素琴
    🎈
    创作整理不易,如果对您有帮助的话,还望多+点赞、收藏☚

    欢迎在评论区留下您宝贵的建议😉😉😉

    展开全文
  • JAVA语言程序设计与数据结构答案,因为大学用的这本书,所以找了很久的答案,这个答案比较全,基本上所有课后习题的答案都有。
  • java语言程序设计.pdf

    热门讨论 2009-09-27 11:27:12
    java语言程序设计.pdf,新手还是有用的。
  • Java语言程序设计基础篇第10版课后习题答案+完整源代码,直接导入eclipse即可运行
  • Java语言程序设计.进阶篇.原书第10版

    热门讨论 2017-10-20 23:43:57
    Java语言程序设计.进阶篇.原书第10版.pdf java语言程序设计 进阶篇 本书是Java语言的经典教材 Java语言程序设计 进阶篇 原书第10篇版 正版内容下载,超高清
  • Java语言程序设计(第2版)

    热门讨论 2013-04-13 09:31:23
    Java语言程序设计(第2版)》是普通高等教育“十一五”国家级规划教材。《Java语言程序设计(第2版)》的取材、编写立足于满足广大Java初学者入门和提高的需要。全书共分为11章,第10章介绍计算机语言概述、Java...
  • java语言程序设计基础篇4.1java语言程序设计基础篇4.1java语言程序设计基础篇4.1![图片说明](https://img-ask.csdn.net/upload/201510/17/1445082768_745840.png)
  • Java语言程序设计(基础篇)课后答案

    万次阅读 多人点赞 2017-07-03 10:21:32
    Java语言程序设计(基础篇)课后习题配套答案,仅1-12章偶数题,这是此书的配套答案。 http://download.csdn.net/detail/xunciy/9887093 Java语言程序设计(基础篇)1-11章课后44条代表性习题答案,这是我自己的写...

    免责申明:上传资料仅供学习交流使用,禁止一切不正当使用行为,如有事故本人概不负责

    Java语言程序设计(基础篇)课后习题配套答案,仅1-12章偶数题,这是此书的配套答案。

    http://download.csdn.net/detail/xunciy/9887093

    Java语言程序设计(基础篇)1-11章课后44条代表性习题答案,这是我自己的写的程序,包括五子棋、八皇后、豆机等在内的简易小游戏。

    http://download.csdn.net/detail/xunciy/9887104

    展开全文
  • Java语言程序设计:进阶篇 原书第8版 》是Java语言的经典教材 中文版分为《Java语言程序设计基础篇》和《Java语言程序设计进阶篇》 主要介绍程序设计基础 面向对象程序设计 GUI程序设计 算法和数据结构 高级Java...
  • Java语言程序设计:基础篇(原书第8版)》是Java语言的经典教材,中文版分为《Java语言程序设计基础篇》和《Java语言程序设计进阶篇》,主要介绍程序设计基础、面向对象程序设计、gui程序设计、算法和数据结构、高级...
  • Java语言程序设计:基础篇(原书第8版)》是Java语言的经典教材,中文版分为《Java语言程序设计基础篇》和《Java语言程序设计进阶篇》,主要介绍程序设计基础、面向对象程序设计、gui程序设计、算法和数据结构、高级...
  • Java语言程序设计.进阶篇.原书第10版.pdf java语言程序设计 进阶篇 本书是Java语言的经典教材 Java语言程序设计 进阶篇 原书第10篇版 正版内容下载,超高清,下载的亲们多多好评哦!
  • 本书是Java语言的经典教材,多年来畅销不衰。...Java语言程序设计 基础篇 原书第10版 ,梁勇著 ,P656 Java语言程序设计-进阶篇(原书第10版) Java语言程序设计第10版书中源代码+习题解答 以及 英文原版
  • Java 语言程序设计 第11版 英文版 梁勇 PDF版本 Introduction to Java Programming and Data Structures, Comprehensive Version (11th Edition 版本) By 作者: Y. Daniel Liang
  • Java语言程序设计 (Y.Daniel Liang 著 梁勇)复习题 + 课后题 答案
  • java语言程序设计基础篇第八版课后题答案
  • 全国统一 自学考试 04747 Java 语言程序设计(一)历年真题及答案 从2008年4月 至 2018年 4月
  • Java语言程序设计基础篇全部源代码

    热门讨论 2010-07-05 20:00:20
    Java语言程序设计基础篇全部源代码 Java语言程序设计基础篇全部源代码
  • 04747《Java语言程序设计(一)》教材电子版
  • Java语言程序设计:进阶篇(原书第8版)》是Java语言的经典教材,中文版分为《Java语言程序设计基础篇》和《Java语言程序设计进阶篇》,主要介绍程序设计基础、面向对象程序设计、GUI程序设计、算法和数据结构、高级...
  • java语言程序设计基础篇课后编程练习答案,提供编程练习个习题的源代码
  • java语言程序设计与数据结构 第十一版 编程答案

    《Java语言程序设计与数据结构》编程练习答案(第一章)

    英文名:Introduction to Java Programming and Data Structures, Comprehensive Version, 11th Edition

    中文版封面

    在这里插入图片描述

    1.1

    public class book {
    
        public static void main(String[] args)
        {
            System.out.println("Welcome to java");
            System.out.println("Welcome to computer science");
            System.out.println("Programming is fun");
        }
    }

    1.2

    public class book {
        public static void main(String[] args)
        {
            for(int i=0; i<5; i++)
                System.out.println("Welcome to java");
        }
    }

    1.3

    public class book {
        public static void main(String[] args)
        {
            System.out.printf("   J     A     V     V     A%n" +
                              "   J    A A     V   V     A A%n" +
                              "J  J   AAAAA     V V     AAAAA%n" +
                              " JJ   A     A     V     A     A%n");
        }
    }

    1.4

    public class book {
        public static void main(String[] args)
        {
            String head1="a";
            String head2="a^2";
            String head3="a^3";
            System.out.printf("%-8s%-8s%-8s%n",head1,head2,head3);
            for(int i=1;i<5;i++)
                System.out.printf("%-8d%-8d%-8d%n",i,i*i,i*i*i);
        }
    }

    1.5

    public class book {
        public static void main(String[] args)
        {
            double result=(9.5*4.5-2.5*3.0)/(45.5-3.5);
            System.out.println(result);
        }
    }

    1.6

    public class book {
        public static void main(String[] args)
        {
            int sum=0;
            for(int i=1;i<10;i++)
                sum+=i;
            System.out.println(sum);
        }
    }

    1.7

    public class book {
        public static void main(String[] args)
        {
            double signal = 1.0;
            double sum = 0.0;
            for(int i=1;i<7;i++)
            {
                sum+=signal*1.0/(2*i-1);
                signal*=-1.0;
            }
            System.out.println(4.0*sum);
            sum = 0.0;
            for(int i=1;i<8;i++)
            {
                sum+=signal*1.0/(2*i-1);
                signal*=-1.0;
            }
            System.out.println(4.0*sum);
        }
    }

    1.8

    public class book {
        public static void main(String[] args)
        {
            double pi = 3.141592654;  //1145141919810
            System.out.println("The circumference is "+2.0*pi*5.5+", and the square is "+pi*5.5*5.5+".");
        }
    }

    1.9

    public class book {
        public static void main(String[] args)
        {
            double width = 4.5;
            double height = 7.9;
            System.out.println("The square is "+width*height+", and the circumference is "+2*(width+height)+".");
        }
    }

    1.10

    public class book {
        public static void main(String[] args)
        {
            System.out.println("The average speed is "+(14.0/1.6)/(45.0/60.0+30.0/3600.0)+" miles per hour.");
        }
    }

    1.11

    public class book {
        public static void main(String[] args)
        {
            double base = 312032486;
            int secnum = 365*24*3600;
            for(int i=1;i<6;i++)
            {
                base=base+secnum/7.0-secnum/13.0+secnum/45.0;
                System.out.println("The population in year "+i+" is "+(int)base);
            }
        }
    }

    1.12

    public class book {
        public static void main(String[] args)
        {
            System.out.println("The average speed is "+24*1.6/(1+40/60.0+35.0/3500)+" kilometers per hour.");
        }
    }

    1.13

    public class book {
        public static void main(String[] args)
        {
            double a=3.4,b=50.2,e=44.5;
            double c=2.1,d=0.55,f=5.9;
            System.out.println("x is "+(e*d-b*f)/(a*d-b*c)+", and y is "+(a*f-e*c)/(a*d-b*c)+".");
        }
    }

    第一章 完

    展开全文
  • 二级(JAVA语言程序设计)考试大纲

    千次阅读 多人点赞 2020-01-11 16:27:10
    二级(Java 语言程序设计)考试大纲 基本要求 1.掌握算法的基本概念 2.掌握基本数据结构及其操作。 3.掌握基本排序和查找算法。 4.。。逐步求精的结构化程序设计方法。 5.。。软件工程的基本方法,具有初步应用技术...
  • JAVA语言程序设计(郎波主编)例题

    热门讨论 2009-05-22 23:24:33
    该资源是清华大学出版社出版的《JAVA语言程序设计》一书中的所有例题。
  • java语言程序设计(基础篇)原书第十版 课后习题答案,自己一个行一行写的代码,不是标准答案,但每个答案都测试过。 从第9章到第13章。 包含的题目有: 第九章:9.1-9.5 9.7-9.9 9.13 第十章:10.1 10.4-10.7 第十...
  • Java语言程序设计-基础篇(原书第8版).pdf

    千次下载 热门讨论 2014-12-16 14:53:45
    Java语言程序设计-基础篇(原书第8版).pdf
  • Java语言程序设计与数据结构》编程练习答案
  • java语言程序设计与数据结构 编程练习答案

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 549,254
精华内容 219,701
关键字:

java语言程序设计

java 订阅