java

  • 格式:pdf
  • 大小:279.00 KB
  • 文档页数:12

1、什么叫对象的上转型对象?(1)定义:如果B类是A类的子类或间接子类,当用B类创建对象b并将这个对象b的引用赋给A类对象a时,则称A类对象a是子类B对象b的上转型对象。

(2)性质:对象b的上转型a的实体是有子类B创建的,但是上转型对象会失去子类B的一些属性和功能。

上转型对象具有以下特点:a、上转型对象不能操作子类新增加的成员变量,不能使用子类新增的方法。

即为较子类B失去一些属性和功能,这些属性和功能是新增的。

b、上转型对象可以操作子类继承或隐藏的成员变量,也可以使用子类继承的或重写的方法。

即为上转型对象可以操纵父类原有的属性和功能,无论这些方法是否被重写。

c、上转型对象调用方法时,就是调用子类继承和重写过的方法。

而不会是新增的方法,也不是父类原有的方法。

d、可以将对象的上转型对象再强制转换到一个子类对象,强制转换过的对象具有子类所有属性和功能。

2、列举3个以上java中布局类型。

FlowLayout、BorderLayout、CardLayout、GridLayout 和GridBagLayout、BoxLayout。

3、什么是方法重载,可以定义两个同名但参数类型不同的方法吗?可以在一个类中定义两个名称和参数列表相同,但返回值类型不同或修饰符不同的方法吗?方法重载是指在一个类中定义多个同名的方法,但方法的形参表互不相同。

这里的不相同可以是形参个数不同,也可以是对应形参的数据类型不同,但不能只是对应形参名不同。

不可以。

4、程序接收两个整数并求出其和class NumberExceptionExample{public static void main ( String[] args ){if (args.length < 2){System.out.println ("数字少于两个,请输入两个数");return;}try{int a = Integer.parseInt (args[0]);int b = Integer.parseInt (args[1]);System.out.println ("sum=" + ( a + b ));}catch (NumberFormatException e){System.out.println ("输入的不是整数");}}}5、用正则表达式判断程序接收的字符串是否符合手机号的格式public class Test{public static void main ( String[] args ){if (args.length <= 0){return;}String pattern = "^(13[0-9]|15[01]|153|15[6-9]|180|18[23]|18[5-9])\\d{8}$";System.out.println (args[0].matches (pattern));}}5、杨辉三角放到一个二维数组public class yanghuisanjiao {public static void main(String[] args) {final int Row=8;yangh(Row);}public static void yangh(int row){int i,j,k;int[][] arr = new int[row+1][row+1];arr[1][1]=arr[2][1]=arr[2][2]=1;for(i=3;i<=row;i++){for(j=1;j<=row;j++){if(j==1||j==i) arr[i][j]=1;else {arr[i][j]=arr[i-1][j-1]+arr[i-1][j];}}}for(i=1;i<=row;i++){for(j=1;j<=i;j++){if(j==1){for(k=1;k<=row-i+1;k++){System.out.print(" ");}System.out.print(arr[i][j]+" ");}else{System.out.print(arr[i][j]+" ");}}System.out.println('\n');}}}6、查看89在计算机中的二进制表示class Test{public static void main(String[] args){System.out.println(Long.toBinaryString(89)) }}7、判断一个字符串中出现了几个enclass Test{public static void main(String[] args){String s="hello student english";int count =0;for(int k=0;k<s.length();k++){if(s.regionMatches(k,”en”,0,2)){count++;}}System.out.println("count=" + count)}}8、编写一个类Calculator,该类有一个方法public int calculate(int a,int b),该方法返回a和b 的最大公约数。

然后再编写一个该类的子类ChildrenCalculator,要求子类重写方法calculate,而且重写的方法将返回a和b的最小公倍数。

要求在重写的方法的方法体中首先调用被隐藏的方法返回a和b的最大公约数k,然后将乘积(a*b)/k返回。

要求在应用程序的主类中分别使用父类和子类创建对象,并分别调用方法calculate计算两个正整数的最大公约数和最小公倍数。

实现一个窗口,布局用BorderLayout,在其布局的NORTH添加一个按钮,点击该按钮可以退出当前的程序。

(1)import java.util.Scanner;public class Test {public static void main(String args[]){Father father=new Father();Son son =new Son();System.out.println("请输入a的值:");Scanner can1=new Scanner(System.in);int a=can1.nextInt();System.out.println("请输入b的值:");Scanner can2=new Scanner(System.in);int b=can1.nextInt();System.out.println("a和b的最大公约数为:"+father.f(a,b));System.out.println("a和b的最小公倍数为:"+son.f(a,b));}}class Calculator{public int calculate(int a,int b){if(a<b){int temp=b;b=a;a=temp;}while(b!=0){int r=a%b;a=b;b=r;}return a;}}class ChildrenCalculator extends Calculator{public int calculate(int a,int b){int m=super.f(a, b);int s=a*b;return s/m;}}(2)import java.awt.BorderLayout;import java.awt.Button;import java.awt.Color;import java.awt.Frame;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;/*****/public class MyFrame extends Frame implements ActionListener { public MyFrame(String title){super(title);}public static void main(String[] args) {MyFrame frame = new MyFrame("myGUI");Button bn =new Button("close");bn.addActionListener(frame);frame.add(bn,BorderLayout.NORTH);frame.setSize(500,500);frame.setBackground(Color.blue);frame.setVisible(true);}@Overridepublic void actionPerformed(ActionEvent ae) {System.out.println("onclick");System.exit(0);}}9、改错题(1)class T{public static void main(String[] args){java.util.Date []dates=new java.util.Date[10];System.out.println(dates[0]);System.out.println(dates[0].toString());}}程序会报空指针异常,因为java.util.Date []dates=new java.util.Date[10];只是声明了一个Date 类型的数组,但是并没有初始化这个数组,所以数组里面没有数据,在打印信息前初始化下就行了。

即把程序改为:class T{public static void main(String[] args){java.util.Date []dates=new java.util.Date[10];for(int i=0;i<10;i++){dates[i]=new Date();} //加上这两句System.out.println(dates[0]);System.out.println(dates[0].toString());}}(2)public class Test{private String text;public void Test(String s){String text =s;}重复定义text。