Java面向对象编程(1)

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

在 Java 中,存放字符串常量的对象属于( )类对象。

A. Character

B. String

C. StringBuffer

D. Vector

答案:B

已知如下类定义:

class Base{
public Base (){
//...
}
public Base ( int m )
{
//...
}
public void fun( int n ){
//...
}
}
public class Child extends Base{
// member methods
}

如下哪句可以正确地加入子类中?

A. private void fun( int n ){ //...}

B. void fun ( int n ){ //... }

C. protected void fun ( int n ) { //... }

D. public void fun ( int n ) { //... }

答案:D

下列选项中属于面向对象编程主要特征的是()

A. 继承

B. 自顶向下

C. 模块化

D. 逐步求精

答案:A

关于下列程序段的输出结果,说法正确的是:( )

public class MyClass{

static int i;

public static void main(String argv[]){

System.out.println(i);

}

}

A. 有错误,变量i没有初始化。

B. null

C. 1

D. 0

答案:D

下列代码的执行结果是:( )

public class Test{

public static void main(String args[]){

System.out.println(100%3);

System.out.println(100%3.0);

}

}

A. 1和1

B. 1和1.0

C. 1.0和1

D. 1.0和1.0

答案:B

方法通常存储在进程中的哪一区()

A. 堆区

B. 栈区

C. 全局区

D. 方法区

答案:D

不考虑反射,关于私有访问控制符 private 修饰的成员变量,以下说法正确的是()

A. 可以三种类所引用:该类自身、与它在同一包中的其他类,在其他包中的该类的子类

B. 可以被两种类访问和引用:该类本身、该类的所有子类

C. 只能被该类自身所访问和修改

D. 只能被同一个包中的类访问

答案:C

类声明中,声明一个类不能再被继承的关键字是()

A. public

B. abstract

C. final

D. static

答案:C

假设 A 类有如下定义,设 a 是 A 类的一个实例,下列语句调用哪个是错误的?()

public class A {

public int i;

static String s;

void method1(){}

static void method2(){}

}

A. System.out.println(a.i);

B. a.method1();

C. A.method1();

D. A.method2();

答案:C

组队竞赛:

题目描述:牛牛举办了一次编程比赛,参加比赛的有3*n个选手,每个选手都有一个水平值a_i.现在要将这些选手进行组队,一共组成n个队伍,即每个队伍3人.牛牛发现队伍的水平 值等于该队伍队员中第二高水平值。

例如: 一个队伍三个队员的水平值分别是3,3,3.那么队伍的水平值是3

一个队伍三个队员的水平值分别是3,2,3.那么队伍的水平值是3

一个队伍三个队员的水平值分别是1,5,2.那么队伍的水平值是2

为了让比赛更有看点,牛牛想安排队伍使所有队伍的水平值总和最大。

如样例所示:  如果牛牛把6个队员划分到两个队伍

如果方案为: team1:{1,2,5}, team2:{5,5,8}, 这时候水平值总和为7.

而如果方案为: team1:{2,5,8}, team2:{1,5,5}, 这时候水平值总和为10.

没有比总和为10更大的方案,所以输出10.

输入描述:输入的第一行为一个正整数n(1 ≤ n ≤ 10^5)

第二行包括3*n个整数a_i(1 ≤ a_i ≤ 10^9),表示每个参赛选手的水平值.

输出描述:

输出一个整数表示所有队伍的水平值总和最大值.

首先先对数据进行排序,前面n个元素为一组,后面2*n个元素,平均分配到各个组里面!

public class Main {
   
public static void main(String[] args) {

       Scanner scanner=new Scanner(System.in);
       
while (scanner.hasNext()){
           
int n=scanner.nextInt();//输入
           int[] array=new int[3*n];
           
for (int i = 0; i < 3*n; i++) {
               
array[i]=scanner.nextInt();
           }
           
Arrays.sort(array);//对数组进行排序
           int sum=0;
           
for (int i = n; i < 3*n; i=i+2) {
               sum=sum+
array[i];
           }
           
System.out.println(sum);
       }
   }
}
当然上述的代码也可以从后往前进行遍历!

2.删除公共字符

题目描述:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”

输入描述:每个测试输入包含2个字符串

输出描述:输出删除后的字符串

public class Main2 {


   public static void main(String[] args) {


       Scanner scanner=new Scanner(System.in);

       String str1=scanner.nextLine();


       //str2要删除的数据


       String str2=scanner.nextLine();

       

       StringBuilder stringBuilder=new StringBuilder();


       char[] arr =new char[300];

       for (int i = 0; i < str2.length(); i++) {


           arr[str2.charAt(i)]=1;//将对应下标的元素赋值为1


       }


       for (int i = 0; i < str1.length(); i++) {


           if (arr[str1.charAt(i)]!=1){


               stringBuilder.append(str1.charAt(i));


           }


       }


       System.out.println(stringBuilder);


   }


}

相关文章
|
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中的面向对象编程思想