本渣渣鸽了一个月终于有时间更新。因为有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 入门第二章 (面对对象)的更多相关文章

  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. VSCode添加Sciter脚本Tiscript高亮支持

    Sciter中的Tiscript脚本不是标准的Javascript,是对Javascript的扩展.所以在常用的编辑器和IDE上对于高亮的支持很不好. 不过在Sciter论坛中找到了在VSCode上的 ...

  2. GJM : C#设计模式(1)——单例模式

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

  3. css_02之盒模型、渐变

    1.框模型:盒模型,①对象实际宽度=左右外边距+左右边框+左右内边距 + width:②对象实际高度=上下外边距+上下边框+上下内边距 + height: 2.外边距:margin:取值:①top(上 ...

  4. kali linux下的arp攻击

    这是我第一篇博客,写的不好请谅解 ____________________________(分割线)_______________________________ 在kali linux系统下自带工具 ...

  5. Linux实战教学笔记06:Linux系统基础优化

    第六节 Linux系统基础优化 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 基础环境 第2章 使用网易163镜像做yum源 默认国外的yum源速度很慢,所以换成国内的. 第一步:先备份 ...

  6. VS2010 release编译下进行调试,“当前不会命中任何断点,还没有为文档加载”问题解决方案

    在release模式下调试程序,经常出现"当前不会命中任何断点,还没有为文档加载"的问题,可尝试以下方法: 1. 属性 → 配置属性 → C/C++ → 常规 → 调试信息格式:选 ...

  7. Unity插件之plyGame教程:DiaQ对话系统

    本文为孤月蓝风编写,转载请注明出处:http://fengyu.name/?cat=game&id=296 DiaQ是plyGame旗下的一款对话及任务系统.拥有可视化的对话及任务编辑器,能够 ...

  8. 使用MonoTouch.Dialog简化iOS界面开发

    MonoTouch.Dialog简称MT.D,是Xamarin.iOS的一个RAD工具包.它提供易于使用的声明式API,不需要使用导航控制器.表格等ViewController来定义复杂的应用程序UI ...

  9. [PHP源码阅读]array_push和array_unshift函数

    在PHP中,在数组中添加元素也是一种很常用的操作,分别有在数组尾部和头部添加元素,看看PHP内部是如何实现数组插入的操作. 我在github有对PHP源码更详细的注解.感兴趣的可以围观一下,给个sta ...

  10. Kafka1 利用虚拟机搭建自己的Kafka集群

    前言:       上周末自己学习了一下Kafka,参考网上的文章,学习过程中还是比较顺利的,遇到的一些问题最终也都解决了,现在将学习的过程记录与此,供以后自己查阅,如果能帮助到其他人,自然是更好的. ...