为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
Java入门第二季_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

Java入门第二季

IMOOC老齐 全栈工程师
难度入门
时长 4小时 0分
  • java会给成员变量赋初始值(=0/=NULL),但不会给局部变量赋初始值(报错)

    查看全部
  • 如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;如果外部类的静态成员与内部类的成员名称不相同,则可通过“成员名”直接调用外部类的静态成员

    查看全部
  • 创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类 对象名= new 内部类()

    查看全部
  • 属性定义不赋值,其初始值为0 方法变量不赋值,报错
    查看全部
  • 项目分析:数据模型分析;业务模型分析;显示和流程控制分析.


    数据模型分析

    1. 通过对现实世界的事与物主要特征的分析、抽象,为信息系统的实施提供数据存取的数据结构以及相应的约束。

    2. 数据结构组成:操作(方法)、属性


    业务模型分析

       1.在设计应用程序之前,应该明确该应用程序必须执行哪些任务。分析业务需求是应用程序开发中最重要的步骤之一。确认业务需求的目的在于创建一个能同时满足零售商和消费者需要的解决方案。

      2. 答答租车系统中,只需要考虑消费者业务需求即可。


     显示和流程分析

    1. 显示:用户可以看到的信息提示界面(命令行)

    2. 流程:显示信息的执行过程、步骤

    3. 答答租车系统中,要以命令行的方式显示提示信息和输出结果信息,要考虑其样式,用户输入的数据不用,信息该如何提示、如何处理并显示结果,这部分囊括了显示和流程的内容。(例如:请选择车辆数->请输入序号->输出总金额)

    查看全部
    1 采集 收起 来源:综合练习

    2018-10-01

    1. UML概念:Unified Modeling Language(UML) 又称统一建模语言或标准建模语言。  是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持。

    2. UML图示:UML2.2中一共定义了14中图示(diagrams)

    3. 常用UML图

      用例图:能够以可视化的方式,表达系统如何满足所收集的业务规则,以及特定的用户需求等信息。

      序列图:按照交互发生的一系列顺序,显示对象之间的这些交互。

      类图:UML类图、业务逻辑和所有支持结构一同被定义全部的代码结构

    4. UML建模工具

      Visio、Rational Rose、PowerDesigner 三种建模工具应用最广(资深程序员做的,入门的会看就好)

    查看全部
    0 采集 收起 来源:UML 简介

    2018-09-30

  • 匿名内部类

    查看全部
    0 采集 收起 来源:Java 中的接口

    2018-09-30

  • 抽象类

     a.在某些情况下,某个父类只知道其子类,应该包含怎样的方法,但无法准确知道这些子类如何实现这些方法。

    b.从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为子类的模板,从而避免了子类设计的随意性。    

    查看全部
  • Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态成员可以使用类名直接访问,也可以使用对象名进行访问。

    查看全部
    1. 接口概念:接口可以理解为一种特殊的类,有全局常量和公共的抽象方法所组成。类是一种具体实现体,而接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部数据,也不关心这些类里方法的实现细节,它只规定这些类里必须提供某些方法。

    2. 接口定义:和类定义不用,定义接口不再使用class关键字,而是使用interfaca关键字。

      基本语法:[修饰符] (abstract系统默认) interface   接口名  extends  [父接口1.2.3]{零个到多个常量定义...零个到多个抽象方法的定义}             接口就是用来被继承。被(其他类)实现的,修饰符一般建议用public (注意:不能使用private和protected修饰接口)   接口可继承可不继承。

    3. 接口定义

      常量:接口中的属性是常量,即使定义时不添加 public static final 修饰符,系统也会自动加上。

      方法:接口中的方法只能是抽象方法,总是使用,即使定义时不添加public abstract修饰符,系统也会自动加上。

    4. 使用接口:一个类可以实现一个或多个接口,实现接口使用implements关键字。Java中一个类只能继承一个父类,是不够灵活的,通过实现多个接口可以做补充。

      继承父类实现接口的语法为:

      [修饰符] class 类名 extends 父类 implements 接口1,接口2...

      {  类体部分//如果继承了抽象类,需要实现继承的抽象方法;要实现接口中的抽象方法。  }

      如果要继承父类,继承父类必须在实现接口之前

    5. 使用接口:经常与匿名内部类配合使用(匿名内部类就是没有名字的内部类,多用于关注实现而不关注实现类的名字)

    IPlayGame ip3 = new IPlayGame() {			@Override			public void playGame() {				// TODO Auto-generated method stub				System.out.println("使用匿名内部类的方式实现接口1");			}			 		};		ip3.playGame();		new IPlayGame() {			@Override				public void playGame() {					// TODO Auto-generated method stub					System.out.println("使用匿名内部类的方式实现接口2");				}		}.playGame();


    查看全部
    0 采集 收起 来源:Java 中的接口

    2018-09-30

  • 多态:对象的多种形态

    1. 引用多态:父类的引用可以指向本类的对象;父类的引用可以指向子类的对象

    2. 方法多态:创建本类对象时,调用的方法为本类对象;创建子类对象时,调用的方法为子类重写的方法或者继承的方法。(父类的引用不能调用子类独有的方法)

    查看全部
    0 采集 收起 来源:Java 中的多态

    2018-09-30

    1. 语法定义:抽象类前使用abstract关键字修饰,则该类为抽象类。

    2. 应用场景:a.在某些情况下,某个子类只是知道其子类应该包含怎样的办法,但无法准确知道这些子类如何实现这些方法。 b.从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为子类的模板,从而避免了子类设计的随机性。

    3. 作用:限制规定子类必须实现某些方法,但不关注实现细节(不关注子类的实现,但必须约束子类的特征)

    4. 使用规则: a. abstract定义抽象类    b. abstract定义抽象方法,只有声明,不需要实现       c. 包含抽象方法的类是抽象类     d.抽象类中可以包含普通的方法,也可以没有抽象方法   e. 抽象类不能直接创建,可以定义引用变量。

    疑惑:不用抽象怎么达到

    查看全部
    1. 向上类型转换(隐式/自动类型转换),是小类型到大类型的转换。

    2. 向下类型转换(强制类型转换),是大类型到小类型。

    3. instanceof 运算符,来解决引用对象的类型,避免类型转换的安全性问题

    查看全部
  • Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态成员可以使用类名直接访问,也可以使用对象名进行访问。当然,鉴于他作用的特殊性更推荐用类名访问~~

    静态成员属于整个类,当系统第一次使用该类时,就会为其分配内存空间直到该类被卸载才会进行资源回收!~~

    查看全部
  • package dadacarrental;
    import java.util.*;
    public class CarRentalMS {
     public static void main(String [] args)
     {
      int choose1=0;
      System.out.println("欢迎您来到嗒嗒租车!");
      System.out.println("请问您是否租车:1 是    0 否");
      @SuppressWarnings("resource")
      Scanner inn =new Scanner(System.in);
      System.out.print("请输入: ");
      choose1=inn.nextInt();
      if(choose1==1)
      {
       Vehicle [] autoList= {new Car("奥迪A6",500,4,0),new Car("红旗H5",400,4,0),new Car("大客车",1200,40,0),
             new Pickup("皮卡",600,4,4),new Truck("中型卡车",1000,2,10),
             new Truck("重型卡车",1300,2,20)};
       System.out.println("嗒嗒租车车型及价格列表如下:");
       System.out.println("车辆序号\t车型\t\t价格(元/天)\t载客(人)\t\t载货(吨)");
       for(int i=0;i<autoList.length;i++)
       {
        System.out.println(("  ")+(i+1)+"\t"+autoList[i].model+"\t\t "+autoList[i].price+"\t\t  "+
             autoList[i].busload+"\t\t  "+autoList[i].burdenCapacity+"");
       }
       
       int choose2=0;
       System.out.println("请问您总共想租几辆车?");
       System.out.print("请输入: ");
       choose2=inn.nextInt();
       int [] rentList=new int[choose2];
       System.out.println("请您依次输入欲租车辆的列表序号:");
       for(int i=0;i<choose2;i++)
       {
        int choose3=0;
        System.out.print("请您输入第  "+(i+1)+" 辆车的序号:  ");
        choose3=inn.nextInt();
        rentList[i]=choose3;
       }
       Arrays.sort(rentList);
       
       System.out.println("您的账单如下:");
       System.out.println("账单序号\t车型\t\t价格(元/天)\t载客(人)\t\t载货(吨)");
       int totalPrice=0,totalBusload=0,totalBurden=0;
       for(int i=0;i<rentList.length;i++)
       {
        System.out.println("  "+(i+1)+"\t"+autoList[rentList[i]-1].model+"\t\t"+autoList[rentList[i]-1].price+"\t\t  "+
             autoList[rentList[i]-1].busload+"\t\t  "+autoList[rentList[i]-1].burdenCapacity+"");
        totalPrice+=autoList[rentList[i] -1].price;
        totalBusload+=autoList[rentList[i]-1].busload;
        totalBurden+=autoList[rentList[i]-1].burdenCapacity;
       }
       System.out.println("总载货量为: "+totalBurden+" 吨");
       System.out.println("总载客量为: "+totalBusload+" 人");
       System.out.println("应支付总金额为: "+totalPrice+" 元");
      }
      else
      {
       System.out.println("再见!");
      }
     }
    }
    
    //父类
    package dadacarrental;
    public class Vehicle {
     String model;        //车型
     int price;            //价格
     int burdenCapacity;    //载货量
     int busload;            //载客量
    }
    //子类,,几个子类是相似的,类名不同
    package dadacarrental;
    public class Truck extends Vehicle {
     public Truck(String model,int price,int busload,int burden)
     {
      this.model=model;
      this.price=price;
      this.busload=busload;
      this.burdenCapacity=burden;
     }
    }


    查看全部

举报

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

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