Java入门基础之重点练习

重点总结

接口:一组规范,一个标准
//COLLECTION家族:list和set

  • //collection 接口存储一组不唯一,无序de对象

List接口存储一组不唯一 有序(插入顺序)的对象
ArrayList:实现了长度可变的数组,在内存中分配连续的空间,遍历元素和随机访问元素的效率比较高
LinkedList:采用链表存储方式。插入、删除元素时效率比较高
Set接口存储一组唯一,无序的对象

  • //MAP家族

    Map接口存储一组键值对象,提供key到value的映射

继承

习题1.租车公司的简单设计与实现,通过继承来实现Moto ,Car,Bus类
代码如下:
父类抽象类

package day81;

public abstract class Moto {
    private int no;
    private String brand;
    private String color;
    private double Mile;

    public int getNo() {
        return no;
    }

    public void setNo(int no) {
        this.no = no;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public double getMile() {
        return Mile;
    }

    public void setMile(double mile) {
        Mile = mile;
    }

    public Moto() {
        super();
    }

    public Moto(int no, String brand, String color, double mile) {
        super();
        this.no = no;
        this.brand = brand;
        this.color = color;
        Mile = mile;
    }

    public abstract void Cal(int days,String no);
}

子类

package day81;

public class Car extends Moto{
    private String Type;

    public String getType() {
        return Type;
    }

    public void setType(String type) {
        Type = type;
    }

    public Car(String type) {
        super();
        Type = type;
    }

    public Car() {
        super();
    }

    public final void Cal(int day,String type){
        if(type.equals("您需要支付的费用是:"+"别克商务舱GL8"))
            System.out.println("您需要支付的费用是:"+600*day);
        else if(type.equals("您需要支付的费用是:"+"宝马550i"))
            System.out.println("您需要支付的费用是:"+500*day);
        else if(type.equals("别克林荫大道"))
            System.out.println("您需要支付的费用是:"+300*day);
    }

}
package day81;

public class Bus extends Moto{
    private String Seat;
    public String getSeat() {
        return Seat;
    }

    public void setSeat(String seat) {
        Seat = seat;
    }

    public Bus() {
        super();
    }

    public Bus(String seat) {
        super();
        Seat = seat;
    }

    public final void Cal(int day,String Seat){
        if(Seat.equals("大于16座"))
            System.out.println("您需要支付的费用是:"+1500*day);
        else 
            System.out.println("您需要支付的费用是:"+800*day);

    }
}

Test主函数:

package day81;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        System.out.println("******欢迎来到租车公司******");
        Scanner input = new Scanner(System.in);
        System.out.println("请输入想租的车型(轿车或者客车):");
        String name= input.next();
        if(name.equals("轿车")){
            Car aCar = new Car();
            System.out.println("请输入向租赁的轿车的车型:");
            String type = input.next();
            System.out.println("请输入想租赁的天数:");
            int day = input.nextInt();
            aCar.Cal(day, type);
        }
        else if(name.equals("客车")){
            System.out.println("请输入向租赁的客车的座位:");
            String type = input.next();
            System.out.println("请输入想租赁的天数:");
            int day = input.nextInt();
            Bus bus = new Bus();
            bus.Cal(day, type);
        }

    }
}

效果图:
这里写图片描述

这里写图片描述


接口

练习2.最经典的打印机问题,打印纸张大小和颜色不同,使用接口来实现
代码如下:
接口paper:

package day92;

public interface Paper {
    void size();
}

接口InkBox:

package day92;

public interface InkBox {
    void use();
}

打印机主函数:

package day92;

import java.util.Scanner;

public class Printer implements InkBox,Paper{
    private String paper;
    private String color;

    public String getPaper() {
        return paper;
    }

    public void setPaper(String paper) {
        this.paper = paper;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public Printer(String paper, String color) {
        super();
        this.paper = paper;
        this.color = color;
    }

    public void size() {
        // TODO Auto-generated method stub
        if(paper.equals("A4")){
            System.out.println("A4");
        }
        else
            System.out.println("B5");
    }
    public void use() {
        // TODO Auto-generated method stub
        if(color.equals("彩色")){
            System.out.println("彩色");
        }
        else
            System.out.println("黑白");
    }
    public static void main(String[] args) {
        System.out.println("请输入想要打印的纸张大小:");
        Scanner input = new Scanner(System.in);
        String paper = input.next();
        System.out.println("请输入想要打印的纸张颜色:");
        String color = input.next();
        Printer aPrinter = new Printer(paper, color);
        aPrinter.size();
        aPrinter.use();
    }

}

结果如下:
这里写图片描述


有关多态,链表遍历,增删改查的知识

练习三.学生信息管理系统,可以实现增删改,使用链表

代码如下:
学生类代码:

package day10;

public class Student {
    private String name;
    private String num;
    private int age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getNum() {
        return num;
    }
    public void setNum(String num) {
        this.num = num;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public Student(String name, String num, int age) {
        super();
        this.name = name;
        this.num = num;
        this.age = age;
    }
    public Student() {
        super();
    }

}

Test1代码:

package day10;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;

public class ArrayList1 {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Student []a = new Student[5];
        List<Student> students = new ArrayList<Student>();
        students.add(new Student("001", "li2", 20));
        students.add(new Student("002", "li4", 25));
        students.add(new Student("003", "li5", 17));
        students.add(new Student("004", "li6", 17));
        students.add(new Student("005", "li7", 23));
        Iterator<Student> i = students.iterator();
         while(i.hasNext())//判断下一个元素之后有值
         {
             Student aStudent = i.next();
             System.out.println(aStudent.getName()+" "+aStudent.getNum()+" "+aStudent.getAge());
         }
         int q = 0;
         Scanner input = new  Scanner(System.in);
         System.out.println("请输入需要修改的学号:");
         String num = input.next();
         for (int j = 0; j < 5; j++) {
             String aString = students.get(j).getName();
             if(num.equals(aString)){
                 System.out.println("请输出要修改的学员的姓名:");
                 String name = input.next();
                 System.out.println("请输出要修改的学员的年龄:");
                 int age = input.nextInt();
                 students.set(j, new Student(num,name,age));
                 Iterator<Student> i1 = students.iterator();
                 while(i1.hasNext())//判断下一个元素之后有值
                 {
                     Student aStudent = i1.next();
                     System.out.println(aStudent.getName()+" "+aStudent.getNum()+" "+aStudent.getAge());
                 }
             }else {
                 q++;
                 if(q==5){
                    System.out.println("对不起,没有此学员");
                    break; 
                 }

            }
        }



    }

}

Tesy2代码:

package day10;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;

public class ArrayList2 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Student []a = new Student[5];
        List<Student> students = new ArrayList<Student>();
        students.add(new Student("001", "li2", 20));
        students.add(new Student("002", "li4", 25));
        students.add(new Student("003", "li5", 17));
        students.add(new Student("004", "li6", 17));
        students.add(new Student("005", "li7", 23));
        Iterator<Student> i = students.iterator();
         while(i.hasNext())//判断下一个元素之后有值
         {
             Student aStudent = i.next();
             System.out.println(aStudent.getName()+" "+aStudent.getNum()+" "+aStudent.getAge());
         }
         Scanner input = new  Scanner(System.in);
         System.out.println("请输入需要删除的学号:");
         String num = input.next();
         int q=0;
         for (int j = 0; j < 5; j++) {
             String aString = students.get(j).getName();
             if(num.equals(aString)){
                 System.out.println("删除成功");
                 students.remove(j);
                 Iterator<Student> i1 = students.iterator();
                 while(i1.hasNext())//判断下一个元素之后有值
                 {
                     Student aStudent = i1.next();
                     System.out.println(aStudent.getName()+" "+aStudent.getNum()+" "+aStudent.getAge());
                 }
                 break;
                 }
             else {
                 q++;
                 if(q==5){
                    System.out.println("对不起,没有此学员");
                    break; 
                 }

            }
    }

}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值