Java入门基础之重点练习
来源:互联网 发布:淘宝怎么发布虚拟宝贝 编辑:程序博客网 时间:2024/05/29 05:54
重点总结
接口:一组规范,一个标准
//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 0
- Java入门基础之重点练习
- Java入门基础之重点补充
- [Java]基础入门练习
- java基础之集合(重点)
- java基础之IO(重点)
- java基础之线程(重点)
- Java基础——Java重点基础之反射
- Java基础重点复习
- java重点 语法基础
- Java基础重点回顾
- Java基础重点回顾
- Java重点基础巩固
- JAVA基础练习之String
- Java 基础练习之数组
- java入门基础------String练习1
- java入门基础------String练习2
- java入门基础------String练习3
- java基础入门----string练习4
- 值得学习的C/C++开源库整理
- python的sys.path与模块引用
- 计算机攻击与计算机安全
- 学习KNN(一) 图像分类与KNN原理
- 架构师日记——Memcached的限制和使用建议
- Java入门基础之重点练习
- 2017-09-09 LeetCode_011 Container With Most Water
- gdb调试多进程和多线程命令
- 【iOS】RxSwift官方Example5--计算器
- Retrofit2自定义Converter.Factory
- zookeeper代码阅读-主要代码逻辑
- clion 激活
- Tomcat(总结整理)
- 正则的一点问题及抓取must(str)