Java面向对象编程(10)

简介: Java面向对象编程(10)

下列运算符合法的是( )

A.&&

B.<>

C.if

D.:=

答案:A

下面代码运行结果是()

public class Test{

   public int add(int a,int b){

        try {

            return a+b;

        }

       catch (Exception e) {

           System.out.println("catch语句块");

        }

        finally{

            System.out.println("finally语句块");

        }

        return 0;

   }

    public static void main(String argv[]){

        Test test =new Test();

        System.out.println("和是:"+test.add(9, 34));

    }

}

A.catch语句块 和是:43

B.编译异常

C.finally语句块 和是:43

D.和是:43 finally语句块

答案:C

下列Java代码中的变量a、b、c分别在内存的____存储区存放。

class A {

   private String a = “aa”;

   public boolean methodB() {

       String b = “bb”;

       final String c = “cc”;

   }

}

A.堆区、堆区、堆区

B.堆区、栈区、堆区

C.堆区、栈区、栈区

D.堆区、堆区、栈区

E.静态区、栈区、堆区

F.静态区、栈区、栈区

答案:C

以下声明合法的是

A.default String s

B.public final static native int w( )

C.abstract double d

D.abstract final double hyperbolicCosine( )

答案:B

在使用super 和this关键字时,以下描述正确的是

A.在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过

B.super()和this()不一定要放在构造方法内第一行

C.this()和super()可以同时出现在一个构造函数中

D.this()和super()可以在static环境中使用,包括static方法和static语句块

答案:A

下面代码的输出结果是什么?

public class ZeroTest {
    public static void main(String[] args) {
     try{
       int i = 100 / 0;
       System.out.print(i);
  }catch(Exception e){
       System.out.print(1);
       throw new RuntimeException();
  }finally{
       System.out.print(2);
  }
      System.out.print(3);
 }
 }

A.3

B.123

C.1

D.12

答案:D

有代码片段如下:

byte b1=1,b2=2,b3,b6;  

final byte b4=4,b5=6;  

b6=b4+b5;  

b3=(b1+b2);  

System.out.println(b3+b6);

关于上面代码片段叙述正确的是()

A.输出结果:13

B.语句:b6=b4+b5编译出错

C.语句:b3=b1+b2编译出错

D.运行期抛出异常

答案:C

以下java程序代码,执行后的结果是()

public class Test {

   public static void main(String[] args) {

       Object o = new Object() {

            public boolean equals(Object obj) {

                return true;

        }

    };

    System.out.println(o.equals("Fred"));

    }

}

A.Fred

B.true

C.编译错误

D.运行时抛出异常

答案:B

执行以下程序后的输出结果是()

public class Test {

   public static void main(String[] args) {

       StringBuffer a = new StringBuffer("A");

       StringBuffer b = new StringBuffer("B");

       operator(a, b);

       System.out.println(a + "," + b);

   }

   public static void operator(StringBuffer x, StringBuffer y) {

       x.append(y); y = x;

   }

}

A.A,A

B.A,B

C.B,B

D.AB,B

答案:D

下面所示的java代码,运行时,会产生()类型的异常

int Arry_a[] = new int[10];

System.out.println(Arry_a[10]);

A.ArithmeticException

B.NullPointException

C.IOException

D.ArrayIndexOutOfBoundsException

答案:D

#字棋

给定一个二维数组board,代表棋盘,其中元素为1的代表是当前玩家的棋子,0表示没

有棋子,-1代表是对方玩家的棋子。当一方棋子在横竖斜方向上有连成的及获胜(及井

字棋规则),返回当前玩家是否胜出。<

输入:[ [1,0,11,[1,-1,-1],[1,-1,0]]

输出  : true

思路:

3*3的井字棋

  1. 判断行,如果某一行元素和为3,说明当前玩家胜出,直接返回true
  2. 判断列,如果某一列元素和为3,说明当前玩家胜出,直接返回true
  3. 判断主对角线,如果主对角线元素和为3,说明当前玩家胜出,直接返回true
  4. 判断副对角线,如果副对角线元素和为3,说明当前玩家胜出,直接返回true
  5. 其余情况直接,return false;

对于N*N的井字棋而言,判断方式跟这个一样,唯一的区别就是数字不一样罢了!!

public class Main5 {
    public static Boolean checkWon(int[][] board){
        int N=board.length;
        int sum=0;
        int i=0;
        int j=0;
        //先检查行的元素的和
        for ( i = 0; i < N; i++) {
            sum=0;//每次循环都得将sum变为0
            for ( j = 0; j < N; j++) {
                //求每一行元素的和,行号不变,变的是列号
                sum+=board[i][j];//注意这里是board[i][j]
            }
            if (sum==N){
                return true;
            }
        }
        //检查列的元素的和
        for ( i = 0; i < N; i++) {
            sum=0;//每次循环都得将sum变为0
            for ( j = 0; j < N; j++) {
                //求每一列元素的和,列号不变,变的是行号
                sum+=board[j][i];//注意这里是board[j][i]
            }
            if (sum==N){
                return true;
            }
        }
        //检查主对角线
        //sum不等于0,我们需要手动将sum置为0
        sum=0;
        for ( i = 0; i < N; i++) {
            sum+=board[i][i];
        }
        if (sum==N){
            return true;
        }
        //检查副对角线
        //sum不等于0,我们需要手动将sum置为0
        sum=0;
        for ( i = 0; i < N; i++) {
            sum+=board[i][N-1-i];
        }
        if (sum==N){
            return true;
        }
        return false;
    }
    public static void main(String[] args) {
        int[][] board={{1,0,1},{1,-1,-1},{1,0,1}};
        System.out.println(checkWon(board));
    }
}
相关文章
|
2月前
|
Java
Java面向对象编程新篇章:多态,你准备好了吗?
【6月更文挑战第17天】Java的多态性是面向对象编程的核心,它允许通过统一的接口处理不同类型的对象。例如,在一个虚拟宠物游戏中,抽象类`Pet`定义了`speak()`方法,猫、狗和鹦鹉等子类各自重写此方法以实现独特叫声。在`main`方法中,使用`Pet`类型的引用创建子类对象并调用`speak()`,多态机制确保调用实际对象的方法,实现代码的灵活性和可扩展性。通过多态,我们能以更低的耦合度和更高的复用性编写更优雅的代码。
22 3
|
6天前
|
存储 前端开发 JavaScript
【前端学java】面向对象编程基础-类的使用(4)
【8月更文挑战第9天】面向对象编程基础-类的使用
7 0
【前端学java】面向对象编程基础-类的使用(4)
|
2月前
|
Java
Java 面向对象编程:父类与子类的“传承”与“创新”之路
【6月更文挑战第16天】Java 中的父类与子类展示了面向对象的“传承”与“创新”。子类`Dog`继承`Animal`,获取其属性和方法如`name`和`makeSound`。子类通过`@Override`增强`makeSound`,显示多态性。设计父类时应考虑普遍性,子类创新专注自身特性,遵循继承最佳实践,利用复用提升效率,构建可维护的软件系统。
130 57
|
1月前
|
Java API 项目管理
Java中的函数式编程与传统面向对象编程对比
Java中的函数式编程与传统面向对象编程对比
|
2月前
|
Java 安全 索引
滚雪球学Java(48):面向对象编程中的StringBuffer类详解
【6月更文挑战第2天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
39 5
滚雪球学Java(48):面向对象编程中的StringBuffer类详解
|
2月前
|
存储 安全 Java
深入探讨 Java 封装机制:为何它是面向对象编程的核心?
【6月更文挑战第16天】Java的封装是OOP核心,它将数据和操作数据的方法打包在类中,隐藏实现细节并提供公共接口。例如,`Student`类封装了私有属性`name`和`age`,通过`get/set`方法安全访问。封装提升代码稳定性、可维护性和复用性,防止外部直接修改导致的错误,确保数据安全。它是面向对象编程优于传统编程的关键,促进高效、可靠的开发。
26 7
|
2月前
|
Java 数据安全/隐私保护 开发者
Java是一种完全支持面向对象编程的语言,其面向对象特性包括封装、继承、多态和抽象等
【6月更文挑战第18天】**面向对象编程(OOP)通过对象封装状态和行为,实现问题域的抽象。Java全面支持OOP,核心特性包括**: - **封装**:保护数据安全,隐藏内部细节。 - **继承**:子类继承父类属性和行为,促进代码重用。 - **多态**:一个接口多种实现,增强灵活性和扩展性。 - **抽象**:通过接口和抽象类抽离共性,简化复杂性。 **Java的OOP便于理解和解决复杂系统问题。**
37 3
|
2月前
|
Java 开发者
Java面向对象编程(OOP)的四个主要概念
【6月更文挑战第19天】Java OOP的基石是封装、抽象、继承和多态。封装是通过类隐藏数据细节;抽象简化复杂性,用接口和抽象类实现;继承让子类从父类继承属性和行为,促进代码重用;多态一个接口可有多种形态,分编译时和运行时。这些概念支持灵活且可扩展的软件设计。
30 1
|
2月前
|
Java
Java 面向对象编程大揭秘:子类如何“继承”父类,摇身一变成为“新贵”?!
【6月更文挑战第16天】Java中的继承允许子类从父类继承特性与功能,如`Dog`继承`Animal`,重写`makeSound`方法,展现独特行为。同样,`Circle`继承`Shape`,定制`draw`方法以绘制圆形。继承提高了代码复用和灵活性,使子类能基于父类基础创新,如同接力赛中父类传递接力棒,子类创造新辉煌。在Java世界,继承是构建复杂项目的关键机制,有待深入探索。
28 4
|
1月前
|
Java 开发者
Java中的面向对象编程思想
Java中的面向对象编程思想