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.编写程序,接收用户从键盘上输入的三个整数x,y,z,从中选出最大和最小者,并编程实现。
答:新建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类,生成100个0---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小时内删除。
发表评论