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 第一.什么是类和对象 在具体说明类和对象之前,先说说别的. 眼睛在人类身体上最为有用的器官.如果一个没有了眼睛,这个人与世 ...
随机推荐
- Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
学习架构探险,从零开始写Java Web框架时,在学习到springAOP时遇到一个异常: "C:\Program Files\Java\jdk1.7.0_40\bin\java" ...
- Struts2入门(六)——国际化
一.前言 1.1.国际化简介 国际化是指应用程序在运行的时候,根据客户端请求来自的国家地区.语言的不同而显示不同的界面(简单说就是根据你的地区显示相关地区的语言,如果你现在在英国,那么显示的语言就是英 ...
- 图解CSS3制作圆环形进度条的实例教程
圆环形进度条制作的基本思想还是画出基本的弧线图形,然后CSS3中我们可以控制其旋转来串联基本图形,制造出部分消失的效果,下面就来带大家学习图解CSS3制作圆环形进度条的实例教程 首先,当有人说你能不能 ...
- 深入理解css3中nth-child和 nth-of-type的区别
在css3中有两个新的选择器可以选择父元素下对应的子元素,一个是:nth-child 另一个是:nth-of-type. 但是它们到底有什么区别呢? 其实区别很简单::nth-of-type为什么要叫 ...
- SAP CRM 将组件整合至导航栏中
到现在,我们已经可以让组件独立地显示.我们只是运行它.让它显示在Web UI中.让我们把组件整合进导航栏,使我们可以在正常登录Web UI时访问它. 步骤一: 为你的UI组件主窗体创建一个内向插件. ...
- js分页页码算法
function get_hs_page(cur_page, total_page) { var result = ""; ; i <= total_page; i++) { ...
- MVC5在Mono上的各种坑
买了Macbook后,各种事情的纠缠,都没好好地用过OSX系统. 果断的装上了xcode和mono,还有monodevelop. 然后把项目移植到mono上运行,各种问题. 然后第一个问题来了 权限不 ...
- 冗余代码都走开——前端模块打包利器 Rollup.js 入门
之前翻译过一篇文章,介绍了通过 ES2015 的解构赋值语法引入模块,可以让打包工具(browserify)最终编译出来的代码量最小化. 殊不知在 webpack 1.X 版本是无法利用该特性来避免引 ...
- 分享阿里云推荐码 IC1L2A,购买服务器可以直接打9折,另附阿里云服务器部署ASP.NET MVC5关键教程
阿里云推荐码为:IC1L2A 阿里云还是不错滴. 以windows server 2008 R2为例,介绍如何从全新的服务器部署MVC5 站点. 新购买的阿里云服务器是没有IIS的,要安装IIS: 控 ...
- Entity Framework 6 Recipes 2nd Edition(9-2)译->用WCF更新单独分离的实体
9-2. 用WCF更新单独分离的实体 问题 你想通过WCF为一个数据存储发布查询,插入,删除和修改,并且使这些操作尽可能地简单 此外,你想通过Code First方式实现EF6的数据访问管理 解决方案 ...