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

Java入门第二季

小慕 JAVA开发工程师
难度入门
时长 4小时 0分
学习人数
综合评分95.7
2050人评价 查看评价
9.8 内容实用
9.5 简洁易懂
9.4 逻辑清晰
  • package yeyu; public class Trafic { public int loadPerson; public void function(){ System.out.println("交通工具具有载人的功能"); } } package yeyu; public class Bus extends Trafic { public void function(){ System.out.println("公共汽车在陆上载客:"+loadPerson+"人"); } } package yeyu; public class Plane extends Trafic{ public String loadPerson; public void function(){ System.out.println("飞机在空中载客:"+loadPerson+"人"); } } package yeyu; public class Board extends Trafic { public void function(){ System.out.println("轮船在海上载客:"+loadPerson+"人"); } } package yeyu; public class TraficText { public static void main(String[] args) { // TODO Auto-generated method stub Trafic load1=new Bus(); Trafic load2=new Board(); Plane load3=new Plane(); load1.loadPerson=40; load2.loadPerson=200; load3.loadPerson="XXX"; load1.function(); load2.function(); load3.function(); } }
  • 本节视频比较详细地介绍了UML的基本概念,POWER DESIGNER的使用方法。 UML简介: 1、Unified Modeling Language,统一建模语言/标准建模语言,是支持模型化和软件系统开发的图形化语言;是一个支持模型化和软件系统开发的图形化语言;为软件开发的所有阶段提供模型化的可视化支持 2、用例图:可视化表达系统如何满足业务规则和特定的用户需求; 3、序列图:表述计算机角色和相互关系,按照交互发生的顺序显示对象之间的交互; 4、类图/类别图:描述类之间的关系,类中的属性和方法; 5、UML类图、业务逻辑和所有支持结构一同被用于定义全部的代码结构;

    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();
              }
          }
      }
    大家看下,有问题找我
  • 静态内部类: 1、 静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问 2、 如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;如果外部类的静态成员与内部类的成员名称不相同,则可通过“成员名”直接调用外部类的静态成员 3、 创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类 对象名= new 内部类();
  • new 一个对象是实例吗? 对,是实例,你说的没错。可以把这个new出来的对象叫做实例,说白了就是这个new出来的“东西”,叫它对象也可以,叫它实例也可以,对象和实例在这个角度上来讲是等价的。 这样: Java中使用 new关键字 加上 构造方法,来创建一个对象,下面是一个名为Cat的类, public class Cat { public Cat() { System.out.println("这是构造方法"); } } 使用new + 构造方法 来创建一个对象,那么也就是 Cat c = new Cat(); 前半部分,Cat c 的意思是,在内存中分配一个变量,名字叫c,这个变量是Cat类型的,它的值是什么? 一会儿在说; 后半部分,new Cat(); 这就是new关键字和构造方法来创建一个对象,Cat()是构造方法的名字没错吧?想造出一个对象来,就这么写,语法规定的,没有为什么; new Cat(); 说明 new这个Cat类的一个对象,程序运行的时候,会调用构造方法Cat(),等这个构造方法执行完了,这个Cat类型的对象也就造出来了,真正的出现在内存当中了; 使用new关键字造出来的对象,被分配在内存的堆区(heap),而且等这个对象真正出来之后,还会做一件重要的事情: 我们这个对象是被分配在内存中的,那么内存地方大了,这个对象在哪里呢?怎么找到它呢?new关键字创建出一个对象之后,会把这个对象在内存中的地址返回,通过这个地址就可以找到这个对象,那么我们上面的写法, Cat c = new Cat(); 意思就是说,把这个对象在内存中的地址 赋值 给变量c,这就是Java中引用概念,c就叫做引用,或者叫引用变量,或者直接叫变量,没问题,都是它; c的值就是一个内存地址,或者叫引用地址,通过这个地址,就可以准确的找到我们刚才创建出来的对象,以后我们要使用这个对象做一些事情,调用此对象的方法什么的,都用过这个引用,ok? ---- 注意,我再说一遍,好多人都搞不清楚,这个c到底是对象还是引用,好多人说c就是Cat类的一个实例,这是非常错误的,c就是引用,不是对象!我们new出来的这个东西,真正在内存中的这个东西叫做对象,叫做实例 个人理解:对象是内存中类的属性集合,变量是这个集合在内存中的引用地址
    00:57
    看视频
  • 面向对象的三大特性:封装、继承、多态 封装: 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。 好处:只能通过规定的方法访问数据;隐藏类的实例细节,方便修改和实现。 封装实现方法:1)、修改属性可见性。2)、创建getter\setter方法。3)、在getter\setter中加入属性控制语句(对属性值的合法性进行判断)。 封装 : 1.类变成private float screen; 2. 加get/set public float getScreen(){ return screen; } public void setScreen(float newScreen){ screen=newScreen; } 3. main调用: phone.setscreen(6.0f); System.out.printly(phone.getScreen()); 好处:只能通过规定的方法访问数据;隐藏类的实例细节,方便修改和实现。
    01:53
    看视频
  • 父类

    Car

    <!--此处有图片-->

    子类

    PassengerCar

    <!--此处有图片-->

    Pickup

    <!--此处有图片-->

    Truck

    <!--此处有图片-->

    主程序

    Tset

    <!--此处有图片-->

    <!--此处有图片-->

    <!--此处有图片-->

  • super关键字的应用: 1.子类的构造过程中必须调用其父类的构造方法 2.如果子类的构造方法没有显示调用父类的构造方法,则系统会默认调用父类的无参构造方法。 3.如果显示的调用构造方法,必须在子类的构造方法的第一行,super()。 4.如果子类的构造方法中既没有显示调用父类的构造方法,父类又没有无参的构造方法,则编译就会报错
  • 所有/类的对象/共享静态变量 推荐用类名访问HelloWorld.hobby 【请称呼static为公共炮友。】
  • 封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。 好处:1、只能通过规定的方法访问数据。 2、隐藏类的实例细节,方便修改和实现 封装的步骤:1、修改属性的可见性,设为private 2、创建个getter/setter方法用于属性的读写 3、在getter/setter方法中加入属性控制语句,对属性值的合法性进行判断 众所周知,JAVA是面向对象的一门语言,每个对象都有各自的属性和方法.但是有的属性涉及安全因素或秘密因素不能让外面的程序调用,所以就用到了private, 经过它定义的变量只能在此对象内部调用,外部程序就无法调用,也就是说只能供其自身调用,比如某个人是一个对象,那么他的血液就肯定是私有变量,只能供其自身调用来维持人的状态.而如果将血液定义成public(公共的)的话,随便其他人都可以改变他血液的状态,你随便把他的血液值设为逆流,那他不就挂了.
  • 从对象的内存角度来理解. 假设现在有一个父类Father,它里面的变量需要占用1M内存.有一个它的子类Son,里面的变量需要占用0.5M内存. 现在通过代码来看看内存的分配情况: 2.f = new Father();//系统将分配1M内存. Son s = new Son();//系统将分配1.5M内存!因为子类中有一个隐藏的引用super会指向父类实例,所以在实例化子类之前会先实例化一个父类,也就是说会先执行父类的构造函数.由于s中包含了父类的实例,所以s可以调用父类的方法. 3.Son s1 = s;//s1指向那1.5M的内存. Father f1 = (Father)s;//这时f1会指向那1.5M内存中的1M内存,即是说,f1只是指向了s中实例的父类实例对象,所以f1只能调用父类的方法(存储在1M内存中),而不能调用子类的方法(存储在0.5M内存中). Son s2 = (Son)f;//这句代码运行时会报ClassCastException.因为f中只有1M内存,而子类的引用都必须要有1.5M的内存,所以无法转换. Son s3 = (Son)f1;//这句可以通过运行,这时s3指向那1.5M的内存.由于f1是由s转换过来的,所以它是有1.5M的内存的,只是它指向的只有1M内存.
  • 1.方法内部类就是内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内可以使用。 2.方法内部类使用时,在方法中创建内部类对象,用对象调用其内部类中的方法。 注:由于方法内部类不能在外部类的方法以外的地方使用,因此方法内部类不能使用访问控制符和 static 修饰符。
  • 1、继承的概念:继承是类与类的一种关系;Java中的继承是单继承,只有一个父类。 2、继承的好处:子类直接拥有父亲的所有属性和方法。---private实现的无效! 代码可复用。 class 子类 extends 父类{……}
  • 1、调用外部内的成员变量:外部内名.this.变量名 2、创建内部类的对象:外部内对象.new 内部类()

举报

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