为了账号安全,请及时绑定邮箱和手机立即绑定
  • 1、继承语法规则:class 子类 extends 父类{} 2、子类在方法重写时,优先调用子类方法,要注意返回值类型、方法名、参数类型及个数都要与父类继承的方法相同 3、继承的初始化要先父类再子类,同一个类中,先执行属性的初始话,再执行构造方法的初始化。 4、fina修饰后,变量不能被修改,方法不能被覆盖,属性不能被隐式的初始化(类的初始化属性必须有值),或在构造方法中赋值(但只能选其一) 5、final修饰变量时,该变量的值只能赋值一次,即变为常量 6、super在对象内部使用,可以代表父类对象,访问父类的属性:super.属性,访问父类的方法:super.方法()<br> 7、super的应用须知 a、子类的构造过程中必须调用父类的构造方法,如果子类的构造方法中没有调用父类的构造方法,则系统默认调用父类无参的构造方法。 b、如果要显示调用构造方法,必须在子类的构造方法的第一行 c、如果子类的构造方法中既没有显示调用父类的构造方法,而父类又没有无参的构造方法,则编译出错 8、toString()方法返回对象的哈希码,可以通过重写toString()方法表示出对象的属性 9、equals()方法用来比较对象的引用值是否相同,在比较两个对象的值是否相同时,需要重写
    查看全部
    6 采集 收起 来源:练习题

    2018-03-22

  • Scanner input = new Scanner(System.in); System.out.println("欢迎使用达达租车系统:"); System.out.println("请问你是否要租车:y/n"); String n =input.next(); Car car[] = { new PassengerCar("奥迪A4", 500, 4), new PassengerCar("马自达6", 400, 4), new PickupCar("皮雪卡6", 450, 4, 2), new PassengerCar("金龙", 800, 20), new Truck("松花江", 400, 4), new Truck("依维柯", 1000, 20) }; if("y".equals(n)){ System.out.println("您可租车的类型及价格目录表:"); System.out.println("序号" + "\t" + "汽车名称" + "\t" + "租金(元/天)" + "\t" + "容量"); for (int i = 0; i < car.length; i++) {//显示可租借的车辆 System.out.println(" " + (i+1) + "\t" + car[i]); } System.out.print("请输入您要租借的汽车数量:"); int m = input.nextInt(); int sum = 0; for (int i = 1; i <= m; i++) { System.out.print("请输入第"+ i +"辆车的序号:"); int k = input.nextInt(); sum = sum + car[k-1].carMoney; } System.out.print("请输入租车天数:"); int t = input.nextInt(); sum = sum * t ; System.out.println("您的账单为:" + sum); }
    查看全部
  • 封装就好比生活中的抽奖箱,如果没有抽奖箱的存在,所有的抽奖号码球都在地上摆着的话,用户就会加以挑选和改动,不能实现抽奖的目的。加了封装就是把所有的号码球都装进了这个抽奖箱,然后给用户一个规定,必须通过入口去取得号码球,而且一次只能取一个。这样一来用户便不能破换抽奖流程,从而达到抽奖的目的。
    查看全部
  • /*方法的多态*/ /**********************分别有父类【类A】(含有方法a输出a1),子类【类B】含有同名方法a输出a2,和方法b输出b1,子类【类C】**********************/ 类A 对象1 = new 类A();/*创建一个属于类A的对象1,引用指向类A*/ 类A 对象2 = new 类B();/*创建一个属于类B的对象2,引用指向类A*/ 类A 对象3 = new 类C();/*创建一个属于类C的对象3,引用指向类C*/ 对象1 方法a();/*输出a1,引用方法就是指向的类A本来拥有的方法,而对象1属于类A*/ 对象2 方法a();/*输出a2,引用方法就是指向的类A本来拥有的方法,但是它的子类B拥有和它同名的方法而功能又重写了,而对象2属于类B*/ 对象3 方法a();/*输出a1,引用方法就是指向的类A本来拥有的方法,而对象3属于类C,类C就是继承了类A中的方法功能,两者是继承关系,对象3虽然属于类C但是它衔接了类A的功能,所以编号是A_C3*/ 对象2 方法b();/*输出失败,因为对象2的引用功能是属于类A虽然它属于类B,但是方法b是类B中特有的,所以如果要输出的话,就需要创建一个既属于类B,引用又指向类B的对象4{类B 对象4 = new 类B }然后用{对象4 方法b();}才能够输出b2*/
    查看全部
    5 采集 收起 来源:Java 中的多态

    2014-12-12

  • 为什么我直接System.out.println(className);就行了啊?
    查看全部
  • 重写: a,父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。 b,若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。 c,子类函数的访问修饰权限不能少于父类的;
    查看全部
  • 一个类与另一个类的边界如何划分?举个例子来说,手机与平板的边界在哪里?为什么将手机可以称之为手机,而将平板称之为平板?假如答案是通过属性和方法,那么假如平板一样具有打电话和发短信的功能,或者有一天打电话和发短信的功能被这个社会淘汰掉了(事实证明如果不是跟座机连线,这两个功能已经并不是像原来那么必要了),他们之间的差别(边界)还存在吗?
    查看全部
  • 租车系统实现代码7-5 else if(selectedcar instanceof PassengerCar){ passengerCarName +=" "+selectedcar.name; /* * 给记录总载客量的变量加上选中客车的载客量,通过强制类型转换可以让父类访问子类, * 因为我们初始化时,这个位置存放的就是PassengerCar类对象,所有是安全的 */ personCapicity +=((PassengerCar)selectedcar).passengerCapacity; //给记录总金额的变量加上选中租用皮卡车所客车的金额 money += ((PassengerCar)selectedcar).transport(hireDay,((PassengerCar)selectedcar).rent); } } if(personCapicity != 0){ //显示账单中的客车信息 System.out.println("***可载人的车有:"); System.out.println(passengerCarName+" "+"共载人:"+personCapicity+"人"); } if(goodsCapicity != 0){ //显示账单中的货车信息 System.out.println("***可载货的车有:"); System.out.println(GoodsCarName+" "+"共载货:"+goodsCapicity+"吨"); } if(money !=0){ //显示账单中的金额信息 System.out.println("***租车总价格:"+money+"元"); } } }
    查看全部
  • 继承的初始化顺序: 1.初始化父类再初始化子类。 2.先执行初始化对象中的属性,再执行构造方法中的初始化。 父类对象-->属性初始化--->构造方法 子类对象-->属性初始化--->构造方法
    查看全部
  • 滴滴租车代码,应该算是比较简便了的(有每一步的说明),希望对你们有帮助

    package lx3;


    import java.util.Scanner;


    //汽车类

     class qc{


    private String qcmc;

    private int zhujin;

    private int rongli;

    private int dun;

    public qc(){

    }

    public qc(String qcmc,int zhujin,int rongli,int dun){

    this.qcmc=qcmc;

    this.zhujin=zhujin;

    this.rongli=rongli;

    this.dun=dun;

    }


    public String getqcmc(){

    return qcmc;

    }

    public int getzhujin() {

    return zhujin;

    }

    public int getrongli() {

    return rongli;

    }

    public int getdun(){

    return dun;

    }

     }

    //第一辆车的类

    class yiqc extends qc{

    public yiqc(){

    }

    public yiqc(String qcmc,int zhujin,int rongli,int dun){

    super(qcmc,zhujin,rongli,dun);

    }

    }

    //第二辆车

    class erqc extends qc{

    public erqc(){

    }

    public erqc(String qcmc,int zhujin,int rongli,int dun){

    super(qcmc,zhujin,rongli,dun);

    }

    }

    //第三辆车

    class sanqc extends qc{

    public sanqc(){

    }

    public sanqc(String qcmc,int zhujin,int rongli,int dun){

    super(qcmc,zhujin,rongli,dun);

    }

    }

    //第四辆车

    class siqc extends qc{

    public siqc(){

    }

    public siqc(String qcmc,int zhujin,int rongli,int dun){

    super(qcmc,zhujin,rongli,dun);

    }

    }

    //第五辆车

    class wuqc extends qc{

    public wuqc(){

    }

    public wuqc(String qcmc,int zhujin,int rongli,int dun){

    super(qcmc,zhujin,rongli,dun);

    }

    }

    //第六辆车

    class luqc extends qc{

    public luqc(){

    }

    public luqc(String qcmc,int zhujin,int rongli,int dun){

    super(qcmc,zhujin,rongli,dun);

    }

    }


    public class dididache {


    public static void main(String[] args) {

    // TODO Auto-generated method stub

    System.out.println("您是否要租车:1是    0否");

    //输入1或0

    Scanner sc=new Scanner(System.in);

    int i=sc.nextInt();

    //判断输入的是1还是0

    if(i==0) {

    System.out.println("感谢你的访问,欢迎下次再来");

    }else if(i==1) {

    System.out.println("你可租车的类型及其价目表");

    //用数组创建多个对象和用多态的引用可以指向子类的知识

    qc[] r1= {new yiqc("宝马",500,4,0),new erqc("奔驰",400,4,0),new sanqc("法拉利",450,4,2),new siqc("保时捷",800,20,0),new wuqc("兰博基尼",400,0,4),new luqc("麦凯轮",1000,0,20)};

    //用for循环输出租车价目表

    System.out.println("序号                汽车名称              租金          容量");

    for(int j=0;j<=5;j++) {

    System.out.println(j+1+"\t"+ r1[j].getqcmc()+"\t"+r1[j].getzhujin()+"\t"+"载人"+r1[j].getrongli()+" "+"载货"+r1[j].getdun()+"吨");

    }

    //输入汽车的数量

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

    Scanner sc1=new Scanner(System.in);

    int x=sc1.nextInt();

    //定义一个数组用来储存选车的序号,数组的长度由租车的数量来决定

    //用for循环输出选择的车序号

    int[] sl=new int[x];

    for(int j=1;j<=sl.length;j++) 

    {

    System.out.println("请输入第"+j+"辆车的序号");

    Scanner sc2=new Scanner(System.in);

    int x1=sc2.nextInt();

    sl[j-1]=x1;

    }

    //输出租车的天数

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

    Scanner sc2=new Scanner(System.in);

    int y=sc2.nextInt();

    //计算账单

    System.out.println("您的账单");

    int num=0;

    for(int z=0;z<sl.length;z++) {

    num+=r1[sl[z]-1].getzhujin(); //sl[z]表示sl数组中的选的车序号

     //sl[z]-1表示车序号-1;因为车序号是1-6,而sl数组下标要0-5.

    //输出账单

    System.out.println("你一共需要支付:"+(num*y));  //y是租的天数

    }

      }


    }


    查看全部
  • //测试类
    package jjj;
    import java.util.Scanner;
    public class Initail {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            System.out.println("欢迎使用哒哒租车系统");
            System.out.println("您是否要租车:1是 0否");
            Car[] allcar= {new PassengerCar("奥迪A4", 800, 4),new PassengerCar("大金龙", 500, 20),new Trunk("东风", 800, 20),new Trunk("解放",500, 10),new Pickup("皮卡", 800, 4,5)};
           Scanner input =new Scanner(System.in);
           int choice1=input.nextInt();
           if(choice1==1) {
               System.out.println("您可租的汽车及其报价表:");
               System.out.println("号\t汽车名称\t租金\t容量\t");
               for(int i=0;i< allcar.length;i++) {
                   System.out.println((i+1)+"\t"+allcar[i].toString());
               }
           }
           else if(choice1 != 1){
    
                System.out.println("感谢你的使用");
    
            }
           System.out.println("请输入需要租车的数量:");
           int choice2=input.nextInt();
           if(choice2<1) {
               System.out.println("数量有错,请重新输入");
               choice2=input.nextInt();
           }
           Car[] newcar = new Car[choice2];
           double bills =0;
           double zhuo =0;
           int zren =0;
           for(int i = 0; i < choice2; i++){
    
                System.out.println("请输入第"+ (i+1) + "辆车的序号");
    
                int choice3 = input.nextInt();
    
                if(choice3 > 5 || choice3 < 1){
    
                    System.out.println("目标不存在,请重新输入");
    
                    choice3 = input.nextInt();
    
                }
                newcar[i] = allcar[choice3 - 1];
           }
           
            System.out.println("请输入你要租的天数");
    
            int day = input.nextInt();
            for(int i = 0; i < choice2; i++){
    
                bills = newcar[i].getRent() * day + bills;
    
            }
            System.out.println("您的账单信息:");
            
            System.out.println("***可以载人的车有:");
            for(int i=0;i<choice2;i++) {
                if(newcar[i].getManned()!=0) {
                    System.out.print(newcar[i].getName()+"\t");
                    zren=zren+newcar[i].getManned();
                }
            }
            if( zren==0) System.out.println("无");
            else System.out.println("总载客人数:" + zren + "人");
            
            System.out.println("***可以载货的车有:");
    
            for(int i = 0; i < choice2; i++){
    
                if(newcar[i].getCargo() != 0 ){
    
                    System.out.print(newcar[i].getName()+"\t");
    
                    zhuo += newcar[i].getCargo();
    
                }
            }
            if(zhuo==0) System.out.println("无!");
            else System.out.println("总载货数:" + zhuo + "吨");
            
            System.out.println("总金额:"+ bills);
        }
    }
    
    //Car父类
    package jjj;
    
    public abstract class Car {
        private String name;
        private int rent;
        private int manned;
        private double cargo;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getRent() {
            return rent;
        }
        public void setRent(int rent) {
            this.rent = rent;
        }
        public int getManned() {
            return manned;
        }
        public void setManned(int manned) {
            this.manned = manned;
        }
        public double getCargo() {
            return cargo;
        }
        public void setCargo(double cargo) {
            this.cargo = cargo;
        }
        
    }
    
    //子类
    public class PassengerCar extends Car {
        public PassengerCar(String name,int rent,int manned) {
            this.setName(name);
            this.setRent(rent);
            this.setManned(manned);
        }
        public String toString() {
            return this.getName()+"\t"+this.getRent()+"/天 "+"\t"+"载人:"+this.getManned()+"\t";
        }
    }
    package jjj;
    
    public class Pickup extends Car {
        public Pickup(String name,int rent,int manned,double cargo) {
            this.setName(name);
            this.setRent(rent);
            this.setManned(manned);
            this.setCargo(cargo);
        }
        public String toString() {
            return this.getName()+"\t"+this.getRent()+"/天 "+"\t"+"载人:"+this.getManned()+" 载货:"+this.getCargo()+"吨"+"\t";
        }
    }
    
    package jjj;
    
    public class Trunk extends Car {
        public Trunk(String name,int rent,int cargo) {
            this.setName(name);
            this.setRent(rent);
            this.setCargo(cargo);
        }
        public String toString() {
            return this.getName()+"\t"+this.getRent()+"/天 "+"\t"+"载货:"+this.getCargo()+"\t";
        }
    }


    查看全部
  • package com.rentcar;
    public abstract class Car {
    	public int carNumber;	
    	public String name; 	
    	public float price;	
    	public int capacity;	
    	public int cargo;		
    	public int getCarNumber() {		
    	return carNumber;	
    	}	
    	public void setCarNumber(int carNumber) {		
    	this.carNumber = carNumber;	
    	}	
    	public String getName() {		
    	return name;	
    	}	
    	public void setName(String name) {		
    	this.name = name;	
    	}	
    	public float getPrice() {		
    	return price;	
    	}	
    	public void setPrice(float price) {		
    	this.price = price;	
    	}	
    	public int getCapacity() {		
    	return capacity;	
    	}	
    	public void setCapacity(int capacity) {		
    	this.capacity = capacity;	
    	}	
    	public int getCargo() {		
    	return cargo;	
    	}	
    	public void setCargo(int cargo) {		
    	this.cargo = cargo;	
    	}	
    	}
    public class Passenger extends Car {
    	public Passenger(int carNumber,String name,float price,int capacity) {		
    	// TODO Auto-generated constructor stub		
    	this.setCarNumber(carNumber);		
    	this.setName(name);		
    	this.setPrice(price);		
    	this.setCapacity(capacity);	}
    		
    	@Override	
    	public String toString() {		
    	return  getCarNumber()+"."+"\t"+getName()+ "\t" +getPrice()+"/天"+"\t\t"+"载人:"+getCapacity()+"人"+"\t"+"载货:-" ;	}}
    public class Truck extends Car {	
    public Truck(int carNumber,String name,float price,int cargo) {		
    // TODO Auto-generated constructor stub		
    this.setCarNumber(carNumber);		
    this.setName(name);		
    this.setPrice(price);		
    this.setCargo(cargo);	}
    	
    @Override	
    public String toString() {		
    return getCarNumber()+"."+"\t"+getName()+ "\t" +getPrice()+"/天"+"\t\t"+"载人:-"+"\t"+"载货:"+getCargo()+"吨" ;	}}
    public class pika extends Car {
    	public pika(int carNumber,String name,float price,int capacity,int cargo) {
    			// TODO Auto-generated constructor stub		
    			this.setCarNumber(carNumber);		
    			this.setName(name);		
    			this.setPrice(price);		
    			this.setCapacity(capacity);		
    			this.setCargo(cargo);	}
    				
    			@Override	
    			public String toString() {		
    			return  getCarNumber()+"."+"\t"+getName()+ "\t" +getPrice()+"/天"+"\t\t"+"载人:"+getCapacity()+"人"+"\t"+"载货:"+getCargo()+"吨" ;	}	}
    import java.util.Arrays;
    import java.util.Scanner;
    
    public class RentCar {	
        public static void main(String[] args) {		
        // TODO Auto-generated method stub		
        System.out.println("欢迎使用答答租车系统!:\n你是否要进行租车:1是  0否");		
        Scanner s = new Scanner(System.in);		
        int i=s.nextInt();	
    			
        if(i==1){			
        System.out.println("您可租车的类型及其目表:");			
        System.out.println("序号"+"\t"+"汽车名称"+"\t"+"租金"+"\t\t"+"载人量"+"\t"+"载重量");
    			
        Car car1=new Passenger(1,"奥迪A4",500,4);			
        Car car2=new Passenger(2,"马自达6",400,4);			
        Car car3=new pika(3,"皮卡雪6",450,4,2);			
        Car car4=new Passenger(4,"金龙",800,20);			
        Car car5=new Truck(5,"松花江",400,4);			
        Car car6=new Truck(6, "依维柯", 900, 20);	
    					
        System.out.println(car1+"\n"+car2+"\n"+car3+"\n"+car4+"\n"+car5+"\n"+car6);			
        Car[] rentcar={car1,car2,car3,car4,car5,car6};
    			
        System.out.println("请输入您要租汽车的数量:");		
    			
        int n = s.nextInt();
    			
        float money1=0;			
        int num=0;			
        int allcargo=0;
    			
        String [] hrentcar = new String[n];					
        for(int k=0;k<n;k++){						
            System.out.println("请输入第"+(k+1)+"辆车的序号");
            						
            int t =s.nextInt();
            						
            if(t>0&&t<=6){				
            hrentcar[k]=rentcar[t-1].name;	
            							
            float money2=rentcar[t-1].price;					
            int person=rentcar[t-1].capacity;				
            int wg=rentcar[t-1].cargo;	
            							
            allcargo+=wg;				
            num+=person;				
            money1+=money2;				
            }else{							
            System.out.println("您输入的信息无效!");							
            k--;							
            if(k==0)k=0;						
            }						
            }
            				
            Arrays.sort(hrentcar);				
            System.out.println("请输入租车天数:");				
            int in = s.nextInt();				
            float sum =in*money1;								
            System.out.println("您的租车完成,已租车"+n+"辆");				
            System.out.println("您的账单:");				
            System.out.println("您租的车有:"+Arrays.toString(hrentcar));				
            System.out.println("共可载"+num+"人");				
            System.out.println("共可载货"+allcargo+"吨");				
            System.out.println("一共需要支付"+sum+"元");
            						
            }else if(i==0){			
            System.out.println("已退出系统,欢迎下次光临");		
            }else{			
            System.out.println("您输入的信息无效!请重启");		
            }		
        }		
    }
    查看全部
  • 1,static 出现的原因: 类对象拥有的资源是属于自己的是独立的、是不能被共享的。因为在程序中需要共享资源。 所以出现了静态变量。 2,静态变量的用法 1)通过类名直接引用:HelloWorld.var 2)通过对象访问:HelloWorld world=new HelloWorld(); world.var; 结:最好通过类名访问静态变量。 下面归纳一下java用于控制可见性的4个访问修饰词: 1)仅对本类可见--private 2)对所有的类可见--public 3)对本包和所有子类可见--protected 4)对本包可见---默认,不需要修饰词
    查看全部
    5 采集 收起 来源:练习题

    2018-02-14

  • 构造方法 1.使用new+构造方法 创建一个新的对象 2.构造方法是定义在Java类中的一个用来初始化对象的方法 构造方法与类同名且没有返回值 public 构造方法名(){//没有返回值类型;与类名相同;可以指定参数 //初始化代码 } 3.无参的构造方法使用 main(); Telphone phone = new Telphone(); class Telphone: public Telphone(){ System.out.println("Telphone构造方法执行了"); } 4.有参的构造方法 main(): Telphone phone2 = new Telphone(4.0f, 2.0f, 2.0f); class Telphone: public Telphone(float newScreen, float newCpu, float newMem){ screen = newScreen; cpu = newCpu; mem =newMem; } 5.当没有指定构造方法时,系统会自动添加无参的构造方法 6.当有指定构造方法,无论是有参、无参的构造方法,都不会自动添加无参的构造方法 7.构造方法的重载:方法名相同,但参数不同的多个方法调用时会自动根据不同的 参数选择相应的方法 8.构造方法不但可以给对象的属性赋值,还可以保证给对象的属性赋一个合理的值
    查看全部
  • 4-3练习第二部分 package com.imooc; import java.util.Scanner; public class Circle extends Shape { final double PI = 3.1415926; Scanner input = new Scanner(System.in);//创建一个Scanner类 @Override public void perimeter() { System.out.println("请输入圆形的半径:"); double radius = input.nextDouble(); double thePrimeter = 2*PI*radius; System.out.println("圆形的周长为:"+thePrimeter); } @Override public void area() { System.out.println("请输入圆形的半径:"); double radius = input.nextDouble(); double theArea = PI*radius*radius; System.out.println("圆形的面积为:"+theArea); } }
    查看全部

举报

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

微信扫码,参与3人拼团

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

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