JAVA 入门第二章 (面对对象)
本渣渣鸽了一个月终于有时间更新。因为有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.显示租车清单,包括总金额,总载货量,以及总计价格
最后附上我自己的源码
package 其其租车系统; import java.util.Scanner; import javax.print.DocFlavor.INPUT_STREAM; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub Scanner input=new Scanner(System.in); Smallcar c1=new Smallcar(); int smallcarmoney[]=new int[10]; int smallcarpeople[]=new int[10]; Bus c2=new Bus(); int busmoney[]=new int[10]; int buspeople[]=new int[10]; Pika c3=new Pika(); int pikamoney[]=new int[10]; int pikapeople[]=new int[10]; int pikagoods[]=new int[10]; Lorry c4=new Lorry(); int lorrymoney[]=new int[10]; int lorrygoods[]=new int[10]; System.out.println("欢迎使用其其租车系统"); System.out.println("1.租车 2.退出"); int num1=input.nextInt(); switch (num1) { case 1: System.out.println("车型如下"); System.out.println("1.小车 载客:4人 拉货0kg 租金:100圆/天"); System.out.println("2.巴士 载客:30人 拉货0kg 租金:500圆/天"); System.out.println("3.皮卡 载客:4人 拉货200kg 租金:200圆/天"); System.out.println("4.卡车 载客:0人 拉货2000kg 租金:500圆/天"); System.out.println("请输入一共要租几辆车"); int num2=input.nextInt(); for(int i=1;i<=num2;i++){ System.out.println("请选择第"+i+"辆车型号"); int a=input.nextInt(); switch (a) { case 1: smallcarpeople[i]=c1.fun2(); smallcarmoney[i]=c1.money(); break; case 2: buspeople[i]=c2.fun2(); busmoney[i]=c2.money(); break; case 3: pikapeople[i]=c3.fun2(); pikamoney[i]=c3.money(); pikagoods[i]=c3.func1(); break; case 4: lorrymoney[i]=c4.money(); lorrygoods[i]=c4.func1(); break; default: System.out.println("选择车型不存在"); break; } } int money1=0; for(int a:smallcarmoney){ money1+= a; } int money2=0; for(int b:busmoney){ money2+= b; } int money3=0; for(int c:lorrymoney){ money3+= c; } int money4=0; for(int d:pikamoney){ money4+=d; } int money=money1+money2+money3+money4; int people1=0; for(int e:buspeople){ people1+=e; } int people2=0; for(int f:smallcarpeople){ people2+=f; } int people3=0; for(int g:pikapeople){ people3+=g; } int people=people1+people2+people3; int goods1=0; for(int h:lorrygoods){ goods1+=h; } int goods2=0; for(int j:pikagoods){ goods2+=j; } int good=goods1+goods2; System.out.println("共可载"+people+"个人"); System.out.println(" 共可载"+good+"kg货物"); System.out.println("请输入租车天数"); int days=input.nextInt(); System.out.println("合计费用"+days*money+"圆"); break; case 2: System.out.println("欢迎下次光临"); break; default: System.out.println("输入错误"); break; } } }
package 其其租车系统; public abstract class Car { public abstract int money(); }
package 其其租车系统; public interface carrygoods { int func1(); }
package 其其租车系统; public interface carrypeople { int fun2(); }
package 其其租车系统; public class Smallcar extends Car implements carrypeople{ public int money() { // TODO Auto-generated method stub return 100; } @Override public int fun2() { // TODO Auto-generated method stub return 4; } }
package 其其租车系统; public class Lorry extends Car implements carrygoods { public int money() { // TODO Auto-generated method stub return 500; } @Override public int func1() { // TODO Auto-generated method stub return 2000; } }
package 其其租车系统; public class Pika extends Car implements carrygoods,carrypeople { public int money() { // TODO Auto-generated method stub return 200; } @Override public int fun2() { // TODO Auto-generated method stub return 4 ; } @Override public int func1() { // TODO Auto-generated method stub return 200; } }
package 其其租车系统; public class Bus extends Car implements carrypeople{ public int money() { // TODO Auto-generated method stub return 500; } @Override public int fun2() { // TODO Auto-generated method stub return 30; } }
附上运行效果图
JAVA 入门第二章 (面对对象)的更多相关文章
- java入门第二章——java编程基础
习题 一.填空题 (p)1.java中的程序代码都必须在一个类中定义,类使用(class)关键字来定义. (p)2.布尔常量即布尔类型的两个值,分别是(true)和(false) (p18)3.jav ...
- JAVA入门第二季(mooc-笔记)
相关信息 /** * @subject <学习与创业>作业1 * @author 信管1142班 201411671210 赖俊杰 * @className <JAVA入门第二季&g ...
- Java入门第二季学习总结
课程总概 该门课程作为java入门学习的第二季,是在有一定的java基础上进行的进一步学习.由于该季涉及到了java的一些核心内容,所以相对第一季来说,课程难度有所提升.大致可将该季的课程分为五部分: ...
- “全栈2019”Java多线程第二章:创建多线程之继承Thread类
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- “全栈2019”Java异常第二章:如何处理异常?
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...
- JAVA 入门第一章(语法基础)
本人初学java 博客分享记录一下自己的学习历程 java我的初步学习分为六章,有c和c++的基础学起来也简便了很多. 第一章 语法基础 第二章 面向对象 第三章 常用工具类 第四章 文件操纵 第五章 ...
- Java入门第一章
后天就是十一长假了,亲们准备好了去哪儿玩了吗? 今天有点空,就来聊聊Java吧,当然是一些Java入门知识了,网上有很多,这里我只是列举一些我自己学到的,感谢大家关注喵的博客这么久,也为大家带来点新知 ...
- JAVA基础第二章-java三大特性:封装、继承、多态
业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...
- JAVA入门第二季 第一章 类和对象
面向对象编程 Object Oriented Programming OOP 第一.什么是类和对象 在具体说明类和对象之前,先说说别的. 眼睛在人类身体上最为有用的器官.如果一个没有了眼睛,这个人与世 ...
随机推荐
- 多线程同步工具——Lock
本文原创,转载请注明出处. 参考文章: <"JUC锁"03之 公平锁(一)> <"JUC锁"03之 公平锁(二)> 锁分独占锁与共享锁, ...
- PHP设计模式(七)适配器模式(Adapter For PHP)
适配器模式:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作. 如下图(借图): // 设置书的接口 // 书接口 interface BookI ...
- (资源整理)带你入门Spark
一.Spark简介: 以下是百度百科对Spark的介绍: Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方 ...
- 在开源中国(oschina)git中新建标签(tags)
我今天提交代码到主干上面,本来想打个标签(tags)的. 因为我以前新建过标签(tags),但是我现在新建的时候不知道入库在哪了.怎么找也找不到了. 从网上找资料也没有,找客服没有人理我,看到一个交流 ...
- CSharpGL(29)初步封装Texture和Framebuffer
+BIT祝威+悄悄在此留下版了个权的信息说: CSharpGL(29)初步封装Texture和Framebuffer +BIT祝威+悄悄在此留下版了个权的信息说: Texture和Framebuffe ...
- 构建Web API服务
返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 构建动态Web API控制器 ABP可以自动地为应用层生成Web API 层.比如说我们之前创建的应用层: namespace N ...
- xamarin MasterDetailPage点击Master时卡顿现象
在很多项目中经常会使用到MasterDetailPage的布局方式,而且一般做为主页面来开发,在开发中,发现一个并不算Bug的问题,但是却发生了,以此记录下来,方便大家探讨. 现象是这样的,我开发了一 ...
- JavaScript权威设计--JavaScript变量,作用域,声明提前(简要学习笔记四)
1.宿主对象与宿主环境 宿主对象:由ECMAScript实现的宿主环境提供的对象,可以理解为:浏览器提供的对象.所有的BOM和DOM都是宿主对象. 宿主环境:一般宿主环境由外壳程序创建与维护,只要 ...
- MVC5 网站开发之七 用户功能 3用户资料的修改和删除
这次主要实现管理后台界面用户资料的修改和删除,修改用户资料和角色是经常用到的功能,但删除用户的情况比较少,为了功能的完整性还是坐上了.主要用到两个action "Modify"和& ...
- ubuntu14.04安装及web环境的搭建
在进行接下来的工作之前首先得准备一个Ubuntu的启动U盘以及腾出一个至少50G的系统盘(在网上看到有人用20G的,不知道效果怎么样).关于Ubuntu启动U盘大家可以参考这个帖子 http://ti ...