Java 面向对象 习题2(基础篇)

简介: 6、字符串操作7、编写一个公司员工类8、构造一个银行账户类9、声明一个图书类

🌎题目目录


6、字符串操作

7、编写一个公司员工类

8、构造一个银行账户类

9、声明一个图书类


6、字符串操作

题目:

(1)从字符串“Java 技术学习班 20220326 "中提取开班日期。

(2)将"MLDN JAVA ”字符串中的"Java"替换为"J2EE ” 。

(3)取出“Java 技术学习班 20220326 "中的第8个字符。

(4)清除"Java 技术学习班 20220326 "中的所有0。

(5)清除"Java 技术学习班 20220326 MLDN 老师"中的所有空格。

(6)从任意给定的身份证号码中提取此人的出生日期。


🔗代码如下:


class A{
    public A(String str1){
        char[] c=str1.toCharArray();
        System.out.print("(1)开班日期:");
        for(int i=0;i<c.length;i++){
            if(c[i]>= '0' && c[i]<= '9'){
                System.out.print(c[i]);
            }
        }
    }
}
class B{
    public B(String str2){
        System.out.print("\n(2)替换后的字符串:");
        String s2=str2.replaceAll("JAVA","J2EE");
        System.out.println(s2);
    }
}
class C{
    public C(String str3){
        char s3=str3.charAt(7);
        System.out.println("(3)取出的字符:"+s3);
    }
}
class D{
    public D(String str4){
        char[] c4=str4.toCharArray();
        System.out.print("(4)清除0后的字符串:");
        for (int i=0;i<c4.length;i++){
            if(c4[i]!='0'){
                System.out.print(c4[i]);
            }
        }
    }
}
class E{
    public E(String str5){
        char[] c5=str5.toCharArray();
        System.out.print("\n(5)清除所有空格后的字符串:");
        for (int i=0;i<c5.length;i++){
            if(c5[i]!=' '){
                System.out.print(c5[i]);
            }
        }
    }
}
class F{
    public F(String str6){
        String s6=str6.substring(6,14);
        System.out.println("\n(6)提取的出生日期:"+s6);
    }
}
public class Demo6 {
    public static void main(String[] args){
        A str1=new A("Java 技术学习班 20220326 ");
        B str2=new B("MLDN JAVA");
        C str3=new C("Java 技术学习班 20220326");
        D str4=new D("Java 技术学习班 20220326");
        E str5=new E("Java 技术学习班 20220326 MLDN 老师");
        F str6=new F("123456200011237890");
    }
}


🔗运行结果:


(1)开班日期:20220326
(2)替换后的字符串:MLDN J2EE
(3)取出的字符:学
(4)清除0后的字符串:Java 技术学习班 222326
(5)清除所有空格后的字符串:Java技术学习班20220326MLDN老师
(6)提取的出生日期:20001123


7、编写一个公司员工类

题目:

1、数据成员:员工员、姓名、薪水、部门。

2、方法:

(1)利用构造方法设置信息。

       单参,只传递员工号,则员工姓名:无名氏,薪水:0,部门:未定。

       双参,传递员工号,姓名,则员工薪水为1000,部门:后勤。

       4参,传递员工号、姓名、部门、薪水。

       无参,则均为空值

(2)显示信息


🔗代码如下:


class Employees{
    private String empId,name,department;
    private int salary;
    public Employees(){}
    public Employees(String e){
        this.empId=e;
        this.name="无名氏";
        this.department="未定";
        this.salary=0;
    }
    public Employees(String e,String n){
        this.empId=e;
        this.name=n;
        this.department="后勤";
        this.salary=1000;
    }
    public Employees(String e,String n,String d,int s){
        this.empId=e;
        this.name=n;
        this.department=d;
        this.salary=s;
    }
    public void print(){
        System.out.println("员工号:"+this.empId+",姓名:"+this.name+",部门:"+this.department+",工资:"+this.salary);
    }
}
public class Demo7 {
    public static void main(String[] args){
        Employees emp1=new Employees();
        Employees emp2=new Employees("123");
        Employees emp3=new Employees("456","张三");
        Employees emp4=new Employees("789","李四","宣传",3000);
        emp1.print();
        emp2.print();
        emp3.print();
        emp4.print();
    }
}


🔗运行结果:


员工号:null,姓名:null,部门:null,工资:0
员工号:123,姓名:无名氏,部门:未定,工资:0
员工号:456,姓名:张三,部门:后勤,工资:1000
员工号:789,姓名:李四,部门:宣传,工资:3000


8、构造一个银行账户类

题目:类的构成包括如下内容:

(1)数据成员用户的账户名称、用户的账户余额(private数据类型)。

(2)方法包括开户(设置账户名称及余额),利用构造方法完成。

(3)查询余额。


🔗代码如下:


import java.util.Scanner;
class Acount{
    private String sname;
    private int balance;
    public Acount(String sname,int balance){
        this.sname=sname;
        this.balance=balance;
    }
    public void locat(){
        Scanner read=new Scanner(System.in);
        System.out.print("请输入查询的账户名称:");
        String x=read.nextLine();
        if(x.equals(sname)){
            System.out.println(" 余额为:"+balance);
        }else{
            System.out.println("无此用户信息!");
        }
    }
}
public class Demo8 {
    public static void main(String[] args){
        Acount a1=new Acount("张三",10000);
        Acount a2=new Acount("李四",20000);
        a1.locat();
        a2.locat();
    }
}


🔗运行结果:

请输入查询的账户名称:张三
余额为:10000
请输入查询的账户名称:李四
余额为:20000


9、声明一个图书类

题目:声明一个图书类,其数据成员为书名、编号(利用静态变量实现自动编号)、书价,并拥有静态数据成员册数、记录图书的总册数,在构造方法中利用此静态变量为对象的编号赋值,在主方法中定义对象数组,并求出总册数。


🔗代码如下:


class Book{
    private int bId,price;
    private String bName;
    private static int bNumber=0;
    public Book(String bName,int price){
        this.setbName(bName);
        this.setPrice(price);
        bId=bNumber;
        bNumber++;
    }
    public void setbName(String bName){
        this.bName=bName;
    }
    public void setPrice(int price){
        this.price=price;
    }
    public String getbName(){
        return bName;
    }
    public int getPrice(){
        return price;
    }
    public static int getbNumber(){
        return bNumber;
    }
    public void print(){
        System.out.println("书名:"+getbName()+",价格:"+getPrice());
    }
}
public class Demo9 {
    public static void main(String[] args){
        Book[] b={new Book("《西游记》",50),
                  new Book("《水浒传》",55),
                  new Book("《红楼梦》",60),
                  new Book("《三国演义》",55)};
        System.out.println("总册数:"+Book.getbNumber());
        for(Book i:b){
            i.print();
        }
    }
}


🔗运行结果:

总册数:4
书名:《西游记》,价格:50
书名:《水浒传》,价格:55
书名:《红楼梦》,价格:60
书名:《三国演义》,价格:55
目录
相关文章
|
6天前
|
Java 关系型数据库 数据库
面向对象设计原则在Java中的实现与案例分析
【10月更文挑战第25天】本文通过Java语言的具体实现和案例分析,详细介绍了面向对象设计的五大核心原则:单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则帮助开发者构建更加灵活、可维护和可扩展的系统,不仅适用于Java,也适用于其他面向对象编程语言。
8 2
|
2月前
|
Java 编译器
封装,继承,多态【Java面向对象知识回顾①】
本文回顾了Java面向对象编程的三大特性:封装、继承和多态。封装通过将数据和方法结合在类中并隐藏实现细节来保护对象状态,继承允许新类扩展现有类的功能,而多态则允许对象在不同情况下表现出不同的行为,这些特性共同提高了代码的复用性、扩展性和灵活性。
封装,继承,多态【Java面向对象知识回顾①】
|
26天前
|
Java 数据安全/隐私保护
JAVA经典习题详解
JAVA经典习题详解
16 4
|
2月前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
32 4
|
2月前
|
Java
接口和抽象类【Java面向对象知识回顾②】
本文讨论了Java中抽象类和接口的概念与区别。抽象类是不能被实例化的类,可以包含抽象和非抽象方法,常用作其他类的基类。接口是一种纯抽象类型,只包含抽象方法和常量,不能被实例化,且实现接口的类必须实现接口中定义的所有方法。文章还比较了抽象类和接口在实现方式、方法类型、成员变量、构造方法和访问修饰符等方面的不同,并探讨了它们的使用场景。
接口和抽象类【Java面向对象知识回顾②】
|
24天前
|
存储 Java 程序员
Java基础-面向对象
Java基础-面向对象
13 0
|
26天前
|
Java 数据安全/隐私保护
java学习笔记(基础习题)
java学习笔记(基础习题)
30 0
|
2月前
|
安全 Java Go
面向对象程序设计语言:Java
Java语言语法和C语言和C++语言很接近,很容易学习和使用,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的特性,Java语言不使用指针,而是引用,并提供了自动分配和回收内存空间,使得程序员不必为内存管理而担忧
53 2
|
2月前
|
Java 开发者
Java 面向对象
Java 是一种面向对象的编程语言,通过对象与类的概念组织代码和数据。面向对象编程的核心包括类、对象、继承、多态、封装和抽象。类是对象的蓝图,定义了属性和行为;对象则是类的实例。继承允许子类继承父类的属性和方法,增强代码复用性;多态则支持通过相同接口调用不同类型对象的行为,包括方法重载和重写。封装通过公共方法隐藏对象细节,提高安全性;抽象则对对象特征进行提炼,通过抽象类和接口实现。理解这些概念有助于设计高效、可维护的 Java 应用程序。
|
2月前
|
Java 开发者
Java编程之旅:探索面向对象的力量
【9月更文挑战第16天】在编程的世界中,Java以其强大的面向对象编程特性而闻名。本文将带你走进Java的世界,一起探索类与对象的奥秘,学习如何通过封装、继承和多态性构建健壮的软件系统。无论你是初学者还是有经验的开发者,本文都旨在提供实用的代码示例,帮助你提升Java技能。准备好开始这段旅程了吗?让我们启程吧!