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

Java入门第二季

IMOOC老齐 全栈工程师
难度入门
时长 4小时 0分
  • 静态内部类


    查看全部
  • 内部类就是定义在另一个类里面的类

    作用:1提供了更好的封装

              2可以直接访问外部类的所有数据

              

    查看全部
  • this关键字的作用

    查看全部
  • 访问修饰符的总结

    查看全部
  • 包的使用规范

    查看全部
  • 封装的set和get方法

    查看全部
  • 封装的实现步骤

    查看全部
  • 封装定义:::


    查看全部
  • 静态初始化块只在类加载时执行,且只会执行一次


    查看全部
  • 用static修饰方法,称为静态方法

    1 静态方法只能直接调用同类中的静态成员

    2普通成员方法,两种变量都可以直接访问

    3静态方法也不能直接调用非静态方法

    查看全部

    1. car类
      public abstract class Car {
          protected int type=0;//車的類型 1載貨 2 載客 3 載貨載客都有
          protected int id=0;//車編號
          protected String name="";//車名稱
          protected int carryWeight=0;//車的載重量 5T 輕型 5T-20T重型
          protected int carryPeople=0;//載客量 小客車5人以下 大客車10人以上
          protected int rent=0;//租金 每天
      
          public int getRent(){
              return this.rent;
          }
          public String getName(){
              return this.name;
          }
          public int getCarryPeople(){
              return this.carryPeople;
          }
          public int getCarryWeight(){
              return this.carryWeight;
          }
      
          public void setArg(int type,int id,String name,int carryWeight,int carryPeople,int rent){
              this.type=type;
              this.id=id;
              this.name=name;
              this.carryWeight=carryWeight;
              this.carryPeople=carryPeople;
              this.rent=rent;
          }
      
          public abstract void  show();
      
      }


    2. public class PeopleCar extends Car {
      
          public PeopleCar(int id,String name,int carryPeople,int rent){
              setArg(2,id,name,0,carryPeople,rent);
          }
          public  void  show(){
              System.out.println(this.id+".     \t"+this.name+"     \t"+this.rent+"元/天 \t"+ "載人:"+this.carryPeople+"人");
          }
      
      }
    3. public class WeightCar extends Car {
          public WeightCar(int id,String name,int carryWeight,int rent){
              setArg(1,id,name,carryWeight,0,rent);
          }
          public  void  show(){
              System.out.println(this.id+".     \t"+this.name+"     \t"+this.rent+"元/天 \t"+ "載貨:"+this.carryWeight+"頓");
          }
      }
    4. public class WorPopCar extends Car{
          public WorPopCar(int id,String name,int carryWeight,int carryPeople,int rent){
              setArg(3,id,name,carryWeight,carryPeople,rent);
          }
          public  void  show(){
              System.out.println(this.id+".     \t"+this.name+"     \t"+this.rent+"元/天 \t"+ "載人:"+this.carryPeople+"人 載貨:"+this.carryWeight+"頓");
          }
      }
    5. import java.util.Scanner;
      
      public class Test {
          private static Car[] carArr;
          public static void main(String[] args) {
              carArr=new Car[6];
              carArr[0]=new PeopleCar(1,"歐迪A4",4,500);
              carArr[1]=new PeopleCar(2,"馬自達6",4,400);
              carArr[2]=new WorPopCar(3,"皮卡雪6",2,4,450);
              carArr[3]=new PeopleCar(4,"金龍",20,800);
              carArr[4]=new WeightCar(5,"松花江",4,400);
              carArr[5]=new WeightCar(6,"依維柯",20,1000);
              initzuche();
          }
      
          private static  void initzuche(){
              Scanner in = new Scanner(System.in);
              System.out.println("欢迎使用噠噠租车系统:");
              System.out.println("您是否要租車:1是 0否");
              int a = in.nextInt();
              if(a==1){//進入租車系統
                  System.out.println("您可租車的類型及其價目表:");
                  System.out.println("序號 \t汽車名稱 \t租金     \t容量");
                  for (Car icar:carArr) {
                      icar.show();
                  }
                  System.out.println("請輸入您要租汽車的數量:");
                  int num = in.nextInt();
                  Car[] selectArr = new Car[num];
                  //統計一起做
                  String pop="";
                  int popnum=0;
                  String wei="";
                  double weinum=0;
                  int allprice=0;
                  for(int i=1;i<=num;i++){
                      System.out.println("請輸入第"+i+"輛車的序號:");
                       int xh= in.nextInt();
                       Car tmp=carArr[xh-1];
                       selectArr[i-1]=tmp;
                      int tmppop=tmp.getCarryPeople();
                      int tmpwei=tmp.getCarryWeight();
                      popnum+=tmppop;
                      weinum+=tmpwei;
                      if(tmppop>0){
                          pop+=tmp.getName()+"  ";
                      }
                      if(tmpwei>0){
                          wei+=tmp.getName()+"  ";
                      }
                      allprice+=tmp.getRent();
                  }
                  System.out.println("請輸入租車天數:");
                  double day = in.nextInt();
                  System.out.println("您的賬單:");
                  System.out.println("***可載人的車有:");
                  System.out.println("  "+pop+"  共載人:"+popnum+"人");
                  System.out.println("***載貨的車有:");
                  System.out.println("  "+wei+"  共載貨:"+weinum+"頓");
                  System.out.println("***租車總價格:"+allprice*day+"元");
              }else{
                  initzuche();
              }
          }
      }
    大家看下,有问题找我
    查看全部
    13 采集 收起 来源:综合练习

    2018-11-10

  • 构造方法

    严谨的来说在实例化创建对象的时候  new+构造方法创建一个新的对象并初始化对象,同时构造方法与类名一致;

    注:在自己指定了构造方法后,系统将不会自动添加构造方法;构造方法也可以重载;同时也可以避免传值不安全的问题;


    查看全部
  • 继承的初始化顺序,1.父类对象---属性初始化---构造方法

    2.子类对象---属性初始化----构造方法

    查看全部
  • 局部变量与成员变量

    区别:

    1、成员变量是定义在类中的变量,作用域为整个类,而局部变量是定义在方法中的作用域仅限于定义它的方法;

    2、初始值不同,java会给成员变量一个初始值0,而不会给局部变量一个初始值;

    3、在同一个方法中不允许有同名局部变量;在不同的方法中可以有同名的局部变量

    4、成员变量和局部变量同名时,局部变量具有更高的优先级(就近原则);


    查看全部
  • 2.方法重写:返回值类型,方法名,参数类型及个数,都要与父类继承的方法相同。

    查看全部

举报

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

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