为了账号安全,请及时绑定邮箱和手机立即绑定

Java入门第二季

小慕 JAVA开发工程师
难度入门
时长 4小时 0分
学习人数
综合评分9.57
2066人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.4 逻辑清晰
  • JAVA中的继承:<br> 1.继承概念:类与类的关系 动物->狗 ==> 父类 ->子类<br> 注意:每个类只能有一个父类!<br> 2.继承的好处:子类拥有父类属性和方法(代码复用)<br> 注意:private修饰的父类属性和方法不能被继承!<br> 3.语法规则:<br> class 子类 extends 父类<br> 例: class Dog extends Animal{<br> ......<br> }<br> 4.代码演示
  • 一、项目分析: 1、数据模型分析 2、业务模型分析 3、显示和流程分析 (一)数据模型分析 1、将现实世界的事与物的主要特征 --分析--抽象--> 信息系统数据存取的数据结构以及约束信息,数据结构的组成:操作(方法)、属性 (二)业务模型分析 1、在设计应用程序前,应该明确该应用必须执行哪些任务。 ·分析业务需求量是应用程序开发中最重要的步骤之一。 ·确认业务需求的目的在于创建一个能同时满足零售商和消费者需要的解决方案。 2、本程序中,面向消费者的业务有:【选车】,【租车天数】,【统计金额】,【载客、载货量】 (三)显示和流程分析 1、显示:用户可以看到的信息提示界面 2、流程:显示信息的执行过程和步骤 3、在本系统中,以命令行显示提示信息和结果,要考虑其样式,用户输入的数据不同如何提示,如何处理并显示结果。例如:请选择车辆->请输入序号->输出总金额...
  • 一.封装应该提供下面三项内容: 1.一个私有的数据域; 2.一个共有的域访问方法; 3.一个公有的域更改器方法。 二.封装的好处: 1.实现内部改变,除了该类的方法之外,不会影响其他代码; 2.执行错误检查,直接对域进行赋值将不会进行这些处理。 极其重要注意事项:不要编写返回引用数据类型的访问器方法。因为对象是储存在栈内存中,而引用数据域储存的是对象的引用,存放在堆内存中,私有化的是引用,而不是对象本身。这样导致封装性被破坏。
  • 遍历数组四种方法: 1: Iterator iterator = list.iterator(); while (iterator.hasNext()) { } 2: for (Iterator iter = list.iterator(); iter.hasNext();){ } 3: for (Object obj : list) { } 4: for (int i = 0; i < list.size(); i++) { }
    01:37
    看视频
  • 1.注意:包含抽象方法的类一定是抽象类,抽象类和抽象方法都需要添加关键字 abstract,且顺序为 abstract class 2.编程:在编程中,先创建一个抽象类,可在其中定义抽象方法(只有声明),再创建子类继承该抽象类(利用browse选择继承的父类),在自动生成代码中写出各自的方法,最后在主函数中利用父类的引用指向子类的对象调用其方法。 注意:抽象方法没有方法体以分号结尾 如:public abstract void call(); public abstract void sendMessage(); 主函数中利用父类的引用指向子类的对象调用其方法。 TelePhone tel1=new CellPhone(); tel1.call(); tel1.message();
    01:45
    看视频
  • java this关键字 1.this关键字代表当前对象 this.属性 操作当前对象的属性 this.方法 调用当前对象的方法 2.封装对象的属性的时候,经常会使用this关键字 public void setJia(double jia){ this.jia=jia;//this.属性=参数;就是将参数的值付给当前对象的属性(为了区分属性和参数) this.sendMessage();//this.方法;就是调用当前对象的sendMessage()方法。 }
  • 1.封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问 好处: a.只能通过规定的方法访问数据 b.隐藏类的实例细节,方便修改和实现 2.封装的实现步骤:1)修改属性的可见性(设为private),2)创建getter/setter方法(用于属性的读写),3)在getter/setter方法中加入属性控制语句(对属性值的合法性进行判断)
  • 1-1 什么是类和对象 ⑴ 万物皆对象,客观存在的事物皆为对象 ⑵ 类是模子,确定对象将会拥有的特征(属性)和行为(方法) ⑶ 类的特点: ①类时对象的类型 ②具有相同属性和方法的一组对象的集合 ⑷ 什么是对象的属性(“有什么”) 属性——对象具有的各种特征 每个对象的每个属性都拥有特定值 ⑸ 什么是对象的方法(“能干什么”) 方法——对象执行的操作 ⑹ 类和对象的关系 类是抽象的概念,仅仅是模板 对象是一个你能够看得到、摸得着的具体实体
  • class name = new class();宏观理解:创建了一个class类型的名叫name的class对象。细说来讲,其中,new class()这一步是计算机在内存中开辟了一块空间来创建了一个对象,然后通过class name = new class 这一步将这个独占内存空间的对象赋给了对象名name 这个变量,这个变量name是class类型。
  • 类对象侧重属性,类的对象侧重这个类的值
    08:51
    看视频
  • java中的包

        1、包的作用:

            a、管理java文件

            b、解决同名文件冲突

        2、定义包:package  包名

            a、必须放在java源程序的第一行

            b、包名之间可以用" ."号隔开   com.imooc.MyClass

        3、系统中的包

            a、java.(功能).(类)

            b、java.lang.(类)  包含java语言基础的类

            c、java.util.(类)  包含java语言中各种工具类

            d、java.io.(类)  包含输入、输出相关功能的类

        4、包的使用

            a、可以通过import关键字,在某个文件使用其他文件中的类

            b、包的命名规范是全小写字母

            c、可以加载某个包下的所以文件,也可以具体包下的所有文件

           


  • 成员内部类访问外部类的私有变量:类名.this.变量名

    静态内部类访问外部类的私有变量:类名.变量名

  • 面向对象

    对象就是一个具体的事物, 从客观让类是一种不存在的东西,只是用来描述确定对象将会拥有的特征(属性)和行为(方法);如生活中的手机就是一个类(从某种角度讲),一说到手机我们就会想到,屏幕尺寸、CPU、内存这些特征(属性),以及打电话、发短信的行为(方法),而真的的对象就是具体的事物,如手机中的小米、三星、华为等具体的东西;最后再说一句,类是对象的类型,是具有相同属性和方法的一组对象的集合。

  • //父类

    public  class Car(){

    private int id;

    private String name;

    private int price;

     

    public int getid{

    return id;

    }

    public void setid{

    this.id =id;

    }

    public int getname{

    return name;

    }

    public void setname{

    this.name =name;

    }

    public int getprice{

    return price

    }

    public void setprice{

    this.price =price;

    }

    }


    //客车子类

    public kecar extends Car{

    private int keliang;

        public kecar(int id,String name,int price,int keliang){

       this.setid(id);

            this.setname(name);

            this.setprice(price);

            this.keliang=keliang; 

    }

    public int getkeliang{

       return keliang;

    }

        public void setkeliang{

       this.keliang =keliang;

    }   

    }


    //皮卡子类

    public pika extends Car{

      private double huoliang;

      private int keliang;

      

      public pika(int id,String name,int price,int keliang,double huoliang,int keliang){

    this.setid(id);

        this.setname(name);

        this.setprice(price);

        this.setkeliang(keliang);

        this.huoliang=huoliang;

        this.keliang=keliang;

      }

      public double gethuoliang{

    return huoliang;

      }

      public void sethuoliang{

    this.huoliang=huoliang;

      }

      public int getkeliang{

    return keliang;

    }

      public void setkeliang{

    this.keliang =keliang;

    }

    }

    //货车子类

    public huocar extends Car{

    private double huoliang;

        public huocar(int id,String name,int price,int keliang,double huoliang){

       this.setid(id);

            this.setname(name);

            this.setprice(price);

            this.setkeliang(keliang);

       this.huoliang=huoliang;

    }

        public double gethuoliang{

       return huoliang;

      }

        public void sethuoliang{

       this.huoliang=huoliang;

      }

    }

    //测试类

    public class Test{

    public static void main(String[] args){

      System.out.println("欢迎使用大大打车系统");

      System.out.println("是否租车:1.是 其他键退出")

      Test test=new Test();

      while(test.test1()){

    System.out.println("你可以选择的车型和价目表");

             System.out.println("------------------------");

             Car[] cars={new kecar(1,"奥迪A8",800,4),

                new kecar(2,"兰博基尼",3000,4),

    new pika(3,"福特猛禽",1300,4,2),

    new huocar(4,"斯柯达",500,4),

    new huocar(5,"依维柯",1000,20)

    };

    System.out.println("编号"+" "+"\t"+"车型"+"  "+"\t"+"租金"+" "+"\t"+"容量");

            //foreach的格式:for(元素类型T 每次循环元素的名称O : 循环对象)

    for(Car car:cars){

              if(car.getClass().equals(kecar.class)){

    System.out.println(car.getid()+"\t"+"\t"+car.getname()+"\t"+"\t"+car.getprice()+"/天"

    +"\t"+"载客"+((kecar)car).getkeliang()+"/人"); //((kecar)car)强制转换

     }

     if(car.getClass().equals(pika.class)){

    System.out.println(car.getid()+"\t"+"\t"+car.getname()+"\t"+"\t"+car.getprice()+"/天"

    +"\t"+"载客"+((pika)car).getkeliang()+"/人"+" "+"载货"+((pika)car).gethuoliang()+"/吨");

     }

              if(car.getClass().equals(huocar.class)){

    System.out.println(car.getid()+"\t"+"\t"+car.getname()+"\t"+"\t"+car.getprice()+"/天"

    +"\t"+"载货"+((huocar)car).gethuoliang()+"/吨"); 

      }

      }

            System.out.println("------------");

            System.out.println("请输入你要租车的数量");

    //新建一个扫描器(创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象)

            Scanner c =new Scanner(System.in);

    //c.nextInt()是扫描到输入的值

    int carnum= c.nextInt();//用于接收租车数量

    List<Car> carlist=new ArrayList<>();//调用集合框架list用于存储客户租车清单

    int add=0;//扩展列表容量

    List<Car> carlistkecar=new ArrayList<>();//用于存储载人的车辆

            List<Car> carlisthuocar=new ArrayList<>();//用于存储载货的车辆

            int passengerCar=0;//载人数

            int Carhuo=0;//载货数

            int Carprice=0;//总资金

            

    for(i=0;i<=carnum;i++){

       System.out.println("请输入你要租第"+(i+1)+"号车");

    int num=c.nextInt();

    carlist.add(cars[num-1]);

    System.out.println("成功添加"+carlist.getadd().getname());

    if(cars[num-1].getClass().equals(kecar.class)){

    passengerCar+=((kecar)carlist.getadd().getkeliang());

    Carprice+=((kecar)carlist.getadd().getprice());

    carlistkecar.add(carlist.getadd());

    }

    if(cars[num-1].getClass().equals(pika.class)){

    passengerCar+=((pika)carlist.getadd().getkeliang());

    Carhuo+=((pika)carlist.getadd().gethuoliang());

    Carprice+=((pika)carlist.getadd().getprice());

    carlistkecar.add(carlist.getadd());

    carlisthuocar.add(carlist.getadd());

    }

    if(cars[num-1].getClass().equals(huocar.class)){

    Carhuo+=((huocar)carlist.getadd().gethuoliang());

    Carprice+=((huocar)carlist.getadd().getprice());

    carlisthuocar.add(carlist.getadd());

    }

    add++;

    }

    System.out.println("请输入你要租车的天数");

    Scanner d=new Scanner(System.in);

    int carDay=d.nextInt();

    Carprice=Carprice*carDay;

    System.out.println("租车完成"+"\n"+"开始统计数据");

    System.out.println("你共租了"+carnum+"辆车:");

    for(Car car:carlist){

    System.out.print(car.getname());

    }

    System.out.println();//直接换行或为了排版和打印特殊图案

    System.out.println("共租"+carDay+"天");

    System.out.println("可载"+passengerCar+"人");

    System.out.println("可载"+Carhuo+"吨");

    System.out.println("共需租金"+Carprice+"元");

    System.out.println("请付钱")

    System.out.println("--------");

    Scanner q=new Scanner(System.in);

    if(Carprice!=q.nextInt()){

    System.out.println("付钱金额错误,请重新付钱");

    }else{

    System.out.println("--------------");

    System.out.println("交易成功");

    }

    System.out.println();

    System.out.println("----感谢您的使用----");

    System.out.println("继续租车请按1,退出任意键");

      }

           System.out.println("----欢迎你再次使用,再见------");

    }

    //捕获异常

    public boolean test1{

    try{

    Scanner t=new Scanner(System.in);

    if(t.nextInt==1){

    return true;

    }else{

    return false;

    }

       }catch(Exception e1){

    return false;

    }

    }

    }

       


举报

0/150
提交
取消
课程须知
本课程是Java开发的基础,需要大家:掌握 Java 基本语法的使用。如果您是新手,建议先移步 《Java入门第一季》
老师告诉你能学到什么?
• 掌握 Java 基本语法和编程思路 • 熟练运用面向对象程序设计思想

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!