本渣渣鸽了一个月终于有时间更新。因为有c++基础,学起来这章还是比较简单的,本章我觉得是程序猿质变课程,理解面向对象的思想,掌握面向对象的基本原则以及 Java 面向对象编程基本实现原理,熟练使用封装、继承、多态面向对象三大特性,感受和c++之间的异同,下面是学习路线。

1.类和对象 

1-1 什么是类和对象

1-2 如何定义 Java 中的类

1-3 如何使用 Java 中的对象

1-4 Java 中的成员变量和局部变量

1-5 Java 中的构造方法

1-6 Java 中的 static 使用之静态变量

1-7 Java 中的 static 使用之静态方法

1-8 Java 中的 static 使用之静态初始化

2. 封装 

2-1 什么是 Java 中的封装

2-2 使用包管理 Java 中的类

2-3 Java 中的访问修饰符

2-4 Java 中的 this 关键字

2-5 什么是 Java 中的内部类

 3.继承 

3-1 Java 中的继承

3-2 Java 中的方法重写

3-3 Java 中的继承初始化顺序

3-4 Java 中的 final 的使用

3-5 Java 中的 super 的使用

3-6 Java 中的 Object 类

 4.多态 

4-1 Java 中的多态

4-2 多态中的引用类型转换

4-3 Java 中的抽象类

4-4 Java 中的接口

4-5 UML

再配上一个比较综合练习题,编写一个控制台版的租车系统。

1.展示所有可租车辆

2.选择车型,租车量,租车天数

3.显示租车清单,包括总金额,总载货量,以及总计价格

最后附上我自己的源码

  1. package 其其租车系统;
  2. import java.util.Scanner;
  3.  
  4. import javax.print.DocFlavor.INPUT_STREAM;
  5. public class Test {
  6.  
  7. public static void main(String[] args) {
  8. // TODO Auto-generated method stub
  9. Scanner input=new Scanner(System.in);
  10. Smallcar c1=new Smallcar();
  11. int smallcarmoney[]=new int[10];
  12. int smallcarpeople[]=new int[10];
  13. Bus c2=new Bus();
  14. int busmoney[]=new int[10];
  15. int buspeople[]=new int[10];
  16. Pika c3=new Pika();
  17. int pikamoney[]=new int[10];
  18. int pikapeople[]=new int[10];
  19. int pikagoods[]=new int[10];
  20. Lorry c4=new Lorry();
  21. int lorrymoney[]=new int[10];
  22. int lorrygoods[]=new int[10];
  23. System.out.println("欢迎使用其其租车系统");
  24. System.out.println("1.租车 2.退出");
  25. int num1=input.nextInt();
  26. switch (num1) {
  27. case 1:
  28. System.out.println("车型如下");
  29. System.out.println("1.小车 载客:4人 拉货0kg 租金:100圆/天");
  30. System.out.println("2.巴士 载客:30人 拉货0kg 租金:500圆/天");
  31. System.out.println("3.皮卡 载客:4人 拉货200kg 租金:200圆/天");
  32. System.out.println("4.卡车 载客:0人 拉货2000kg 租金:500圆/天");
  33. System.out.println("请输入一共要租几辆车");
  34. int num2=input.nextInt();
  35. for(int i=1;i<=num2;i++){
  36. System.out.println("请选择第"+i+"辆车型号");
  37. int a=input.nextInt();
  38. switch (a) {
  39. case 1:
  40. smallcarpeople[i]=c1.fun2();
  41. smallcarmoney[i]=c1.money();
  42. break;
  43. case 2:
  44. buspeople[i]=c2.fun2();
  45. busmoney[i]=c2.money();
  46. break;
  47. case 3:
  48. pikapeople[i]=c3.fun2();
  49. pikamoney[i]=c3.money();
  50. pikagoods[i]=c3.func1();
  51. break;
  52. case 4:
  53. lorrymoney[i]=c4.money();
  54. lorrygoods[i]=c4.func1();
  55. break;
  56. default:
  57. System.out.println("选择车型不存在");
  58. break;
  59. }
  60. }
  61. int money1=0;
  62. for(int a:smallcarmoney){
  63. money1+= a;
  64. }
  65. int money2=0;
  66. for(int b:busmoney){
  67. money2+= b;
  68. }
  69. int money3=0;
  70. for(int c:lorrymoney){
  71. money3+= c;
  72. }
  73. int money4=0;
  74. for(int d:pikamoney){
  75. money4+=d;
  76. }
  77. int money=money1+money2+money3+money4;
  78. int people1=0;
  79. for(int e:buspeople){
  80. people1+=e;
  81. }
  82. int people2=0;
  83. for(int f:smallcarpeople){
  84. people2+=f;
  85. }
  86. int people3=0;
  87. for(int g:pikapeople){
  88. people3+=g;
  89. }
  90. int people=people1+people2+people3;
  91. int goods1=0;
  92. for(int h:lorrygoods){
  93. goods1+=h;
  94. }
  95. int goods2=0;
  96. for(int j:pikagoods){
  97. goods2+=j;
  98. }
  99. int good=goods1+goods2;
  100. System.out.println("共可载"+people+"个人");
  101. System.out.println(" 共可载"+good+"kg货物");
  102. System.out.println("请输入租车天数");
  103. int days=input.nextInt();
  104. System.out.println("合计费用"+days*money+"圆");
  105. break;
  106. case 2:
  107. System.out.println("欢迎下次光临");
  108. break;
  109. default:
  110. System.out.println("输入错误");
  111. break;
  112. }
  113. }
  114.  
  115. }
  1. package 其其租车系统;
  2.  
  3. public abstract class Car {
  4. public abstract int money();
  5.  
  6. }
  1. package 其其租车系统;
  2.  
  3. public interface carrygoods {
  4. int func1();
  5. }
  1. package 其其租车系统;
  2.  
  3. public interface carrypeople {
  4. int fun2();
  5. }
  1. package 其其租车系统;
  2.  
  3. public class Smallcar extends Car implements carrypeople{
  4.  
  5. public int money() {
  6. // TODO Auto-generated method stub
  7. return 100;
  8. }
  9. @Override
  10. public int fun2() {
  11. // TODO Auto-generated method stub
  12. return 4;
  13. }
  14. }
  1. package 其其租车系统;
  2.  
  3. public class Lorry extends Car implements carrygoods {
  4.  
  5. public int money() {
  6. // TODO Auto-generated method stub
  7. return 500;
  8. }
  9. @Override
  10. public int func1() {
  11. // TODO Auto-generated method stub
  12. return 2000;
  13. }
  14. }
  1. package 其其租车系统;
  2.  
  3. public class Pika extends Car implements carrygoods,carrypeople {
  4.  
  5. public int money() {
  6. // TODO Auto-generated method stub
  7. return 200;
  8. }
  9. @Override
  10. public int fun2() {
  11. // TODO Auto-generated method stub
  12. return 4 ;
  13. }
  14. @Override
  15. public int func1() {
  16. // TODO Auto-generated method stub
  17. return 200;
  18. }
  19. }
  1. package 其其租车系统;
  2.  
  3. public class Bus extends Car implements carrypeople{
  4. public int money() {
  5. // TODO Auto-generated method stub
  6. return 500;
  7. }
  8. @Override
  9. public int fun2() {
  10. // TODO Auto-generated method stub
  11. return 30;
  12. }
  13. }

附上运行效果图

JAVA 入门第二章 (面对对象)的更多相关文章

  1. java入门第二章——java编程基础

    习题 一.填空题 (p)1.java中的程序代码都必须在一个类中定义,类使用(class)关键字来定义. (p)2.布尔常量即布尔类型的两个值,分别是(true)和(false) (p18)3.jav ...

  2. JAVA入门第二季(mooc-笔记)

    相关信息 /** * @subject <学习与创业>作业1 * @author 信管1142班 201411671210 赖俊杰 * @className <JAVA入门第二季&g ...

  3. Java入门第二季学习总结

    课程总概 该门课程作为java入门学习的第二季,是在有一定的java基础上进行的进一步学习.由于该季涉及到了java的一些核心内容,所以相对第一季来说,课程难度有所提升.大致可将该季的课程分为五部分: ...

  4. “全栈2019”Java多线程第二章:创建多线程之继承Thread类

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  5. “全栈2019”Java异常第二章:如何处理异常?

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...

  6. JAVA 入门第一章(语法基础)

    本人初学java 博客分享记录一下自己的学习历程 java我的初步学习分为六章,有c和c++的基础学起来也简便了很多. 第一章 语法基础 第二章 面向对象 第三章 常用工具类 第四章 文件操纵 第五章 ...

  7. Java入门第一章

    后天就是十一长假了,亲们准备好了去哪儿玩了吗? 今天有点空,就来聊聊Java吧,当然是一些Java入门知识了,网上有很多,这里我只是列举一些我自己学到的,感谢大家关注喵的博客这么久,也为大家带来点新知 ...

  8. JAVA基础第二章-java三大特性:封装、继承、多态

    业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...

  9. JAVA入门第二季 第一章 类和对象

    面向对象编程 Object Oriented Programming OOP 第一.什么是类和对象 在具体说明类和对象之前,先说说别的. 眼睛在人类身体上最为有用的器官.如果一个没有了眼睛,这个人与世 ...

随机推荐

  1. [算法]——快速排序(Quick Sort)

    顾名思义,快速排序(quick sort)速度十分快,时间复杂度为O(nlogn).虽然从此角度讲,也有很多排序算法如归并排序.堆排序甚至希尔排序等,都能达到如此快速,但是快速排序使用更加广泛,以至于 ...

  2. Spring(三)__aop编程

    aop( aspect oriented programming ) 面向切面编程,是对所有对象或者是一类对象编程 几个重要的概念: 1.切面(aspect):要实现的交叉功能,是系统模块化的一个切面 ...

  3. 「译」JUnit 5 系列:环境搭建

    原文地址:http://blog.codefx.org/libraries/junit-5-setup/ 原文日期:15, Feb, 2016 译文首发:Linesh 的博客:环境搭建 我的 Gith ...

  4. Linux基础介绍【第二篇】

    远程连接Linux的原理 SHH远程连接介绍 当前,在几乎所有的互联网企业环境中,最常用的Linux提供远程连接服务的工具就是SSH软件,SSH分为SSH客户端和SSH服务端两部分.其中,SSH服务端 ...

  5. bzoj1531: [POI2005]Bank notes

    Description Byteotian Bit Bank (BBB) 拥有一套先进的货币系统,这个系统一共有n种面值的硬币,面值分别为b1, b2,..., bn. 但是每种硬币有数量限制,现在我 ...

  6. C#(或者说.NET/Mono)能做的那些事

    不做语言之争,只陈述事实: 1.桌面软件与服务 不仅是在Windows上,有了开源的Mono,在Apple Mac和Linux(如:Ubuntu)上也有C#的施展天地.并且还可以通过mkbundle工 ...

  7. centos7+mono4.2.3.4+jexus5.8.1跨平台起飞

    很早之前就开始关注.net跨平台,最近正好测试了下用EF6连接mysql,于是就想直接把网站扔进Linux.查了很多资料,鼓捣了两个晚上,终于成功. 这里我使用的是budgetvm的1G openvz ...

  8. EQueue 2.0 性能测试报告

    前言 最近用了几个月的时间,一直在对EQueue做性能优化.到现在总算告一段落了,现在把一些优化的结果分享给大家.EQueue是一个分布式的消息队列,设计思路基本和阿里的RocketMQ一致,只是是用 ...

  9. 如何扩展 Visual Studio 编辑器

    在 Visual Studio 2010 的时代,扩展 Visual Studio 的途径有很多,开发者可以选择宏.Add-in.MEF 和 VSPackages 进行自定义的扩展.但是宏在 Visu ...

  10. TODO:Go语言同名Go字体发布

    TODO:Go语言同名Go字体发布 2016-11-16 Go语言官方博客发布了一款同名字体–Go字体.此字体族包括正常.粗体和斜体渲染,支持比例和等宽字体.此字体已经经过用于编程方面的技术测试,使用 ...