Java语言程序设计
一、Java语言基础知识
    1.双目运算符和单目运算符都有哪些?i++++i的区别是什么?
    答:双目运算符有:+(表示加)、-(表示减)、*/%,单目运算符有:+(表示正值)、-(表示负值)、++--
    i++是先赋值,再自加;++i是先自加,再赋值;例如:
int a,i=1;
如果a=i++;a=1,i=2;
如果a=++i;a=2,i=2;
    2.Java语言中,“逻辑与”“逻辑或”“逻辑非”分别用什么表示?
    答:“逻辑与”用&&表示,“逻辑或”用||表示,“逻辑非”用!表示。
    3.表示数组元素个数的属性是什么?
    答:length
二、类与对象的基本概念
    1.什么是对象、类,它们之间的联系?
答:对象是包含现实世界物体特征的抽象实体,它反映系统为之保存信息和与它交互的能力;
类是具有相同操作功能和相同的数据格式(属性)的对象的集合与抽象。
类与对象的关系可以表述为:一个类是对一类对象的描述,是构造对象的模版,对象是类的具体实例。
2.请解释类属性、实例属性及其区别。
答:类属性表示类中所有的对象都相同的属性,在声明时加上static修饰符;
实例属性用来存储所有实例都需要的属性信息,不同实例的属性值可能会不同,在声明时不加static修饰符。
二者的区别为:类属性为所有的对象拥有;实例属性为每个实例对象自己拥有。
3.请解释类方法、实例方法及其区别。
答:类方法表示具体实例的类中对象的共有行为,在使用时可以将类方法发送给类名,也可以发送给一个类实例,其作用是一样的;
实例方法表示特定对象的行为,在声明时前面不加static修饰符,在使用时需要发送给一个类实例。类方法也称为静态方法,在方法声明时前面需加static修饰符。
二者的区别为:类方法在使用时既可以将类方法发送给类名,也可以发送给一个类实例,实例方法在使用时需要发送给一个类实例。
4. 类成员的访问控制符有哪几种?他们对类成员分别有哪些访问限制的作用?
:类成员的访问控制符有 public,private,protectedsession和application的区别及无修饰符。
public修饰的成员表示是公有的,也就是它可以被其他任何对象访问(前提是对类成员所在的类有访问权限)。用private修饰的成员只能被这个类本身访问,在类外不可见。用proteced修饰的成分是受保护的,只可以被同一类及其子类的实例对象访问。
无修饰符表示相应的成员可以被所在包中的各类访问。
5. 如果在类声明中声明了构造方法,系统是否还提供默认的构造方法?
答:不提供。
三、类的方法
    1.编写程序,接收用户从键盘上输入的三个整数xyz,从中选出最大和最小者,并编程实现。
答:新建Keyboard.java文件,其内容为:
import java.util.Scanner;
import java.io.*;
public class Keyboard{
    static BufferedReader inputStream=new BufferedReader(new InputStreamReader(System.in));
    public static int getInteger(){
        try{
            return (Integer.adLine().trim()).intValue());
        }
        catch(Exception e){
            e.printStackTrace();
            return 0;
        }
    }
    public static String getString(){
        try {
            adLine();
        }catch (Exception e){
            e.printStackTrace();
            return null;
        }
    }
}
新建Ex1.java文件,其内容为:
    public class Exe1{
    public static void main (String[] args){
        System.out.print("请输入x:");
        int Integer();
        System.out.print("请输入y:");
        int Integer();
        System.out.print("请输入z:");
        int Integer();
        if (x>y){
            if(x>z){
                System.out.println("最大数为x"+x);
                    if(y>z){
                        System.out.println("最小数为z"+z);
                  }
                  else{
                      System.out.println("最小数为y"+y);
                  }
            }
            else{
                  System.out.println("最大数为z"+z);   
                System.out.println("最小数为y"+y);
            }
        }
       
        else{
            if(x>z){
                System.out.println("最小数为z"+z);
            }
            else{
                System.out.println("最小数为x"+x);
                if(y>z){
                    System.out.println("最大数为y"+y);
                }
                else{
                    System.out.println("最大数为z"+z);
                }
            }
        }
    }
}
    2.求出100以内的素数,并将这些数在屏幕上5个一行地显示出来。
答:新建Exe2.java文件,其内容为:
    public class Exe2 {
    public static void main(String[] args) {
        for(int i = 2, j = 0; i <= 100; i++) {
            if(sushu(i)) {
                System.out.printf("%5d", i);
                j++;
                if(j % 5 == 0 && j != 0) {
                    System.out.println();
                }
            }
        }
    }
    public static boolean sushu(int num) {
        if(num == 2) return true;
        boolean a = true;
        for (int m = 2; m <= (num - 1); m++) {
            if (num % m == 0) {
                a = false;
                break;
            }
        }
        return a;
    }
}
    3.使用java.lang.Math类,生成1000---99之间的随机整数,出他们之中的最大值和最小值,并统计大于50的整数个数。
答:新建Exe3.java文件,其内容为:
public class Exe3{
    public static void main(String[] args){
        int min,max,n=0;
        int[] array=new int[100];
        array[0]=(int)(Math.random()*100);
        min=array[0];
        max=array[0];
   
        System.out.println("数列为:");
        System.out.print(array[0]+" ");
        for(int i=0;i<100;i++){
            array[i]=(int)(Math.random()*100);
            if(array[i]>50)
                n++;
            if(array[i]>=max)
                max=array[i];
            if(array[i]<=min)
                min=array[i];
 
            System.out.print(array[i]+" ");     
        }
        System.out.println();
        System.out.println("最小数为="+min);
        System.out.println("最大数为="+max);
        System.out.println("大于50的整数个数有:"+n);
    }
}
4.接收用户从键盘上输入的两个整数,求两个数的最大公约数和最小公倍数,并输出。
答:新建Exe4.java文件,其内容为:
    class CalcGCD {
      public static int calcGCG(int a, int b ) {
            int max=0;int min=0;
            if (a>b) {
                max=a;
                min=b;
            }
            else {
                max=b;
                min=a;
            }
            while (max %min !=0) {
                int temp= max %min;
                max=min;
                min=temp;
            }
            return min;
        }
}
class CalcLCM {
        public static int calcLCM(int a,int b) {
            int gcd=CalcGCD.calcGCG(a,b);
            int lcm=(a/gcd)*(b/gcd)*gcd;
            return lcm;
        }
}
public class Exe4 {
        public static void main (String[ ] args){
            System.out.print("请输入第一个整数:");
            int Integer( );
            System.out.print("请输入第二个整数:");
            int Integer( );
            System.out.print(a+""+b+"的最大公约数为:");
            System.out.println(CalcGCD.calcGCG(a,b));
            System.out.print(a+""+b+"的最小公倍数为:");
            System.out.println(CalcLCM.calcLCM(a,b));
        }
}
5.什么是异常?解释抛出、捕获的含义。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。