2 qq 32060049 qq_32060049 于 2016.03.08 12:35 提问

Java中指针指向的方法无法期望目标

在Switch语句中p1.ShowCar();可以显示出信息,可紧接的 下一句p1.ChooseCar();中的信息却无法显示。代码如下,希望您指教,谢谢!

import java.util.Scanner;

public class Test {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("欢迎使用答答租车系统:"+"\n"+"您是否要租车:1是 0否");
int answer = input.nextInt();
if(answer==0){
System.out.println("欢迎再次光临~");
System.exit(0);

}

   System.out.println("请输入编号:");
   System.out.println("1载人 2载货 3皮卡(既可载人也可载货)");
   int choice = input.nextInt();

   switch(answer*choice){
   case 1:Car p1 = new PassengerCar();
          p1.ShowCar();
                    p1.ChooseCar();
          break;
   case 2:Car p2 = new Truck();
          p2.ShowCar();
          break;
   case 3:Car p3 = new Pickup();
          p3.ShowCar();
          break;
   }//break跳出的是switch语句而非整个程序

}
}


import java.util.Scanner;

public class PassengerCar extends Car{
public void ShowCar(){
System.out.println("您可租车的类型及其价目表:");
System.out.println("序号"+"\t"+"汽车名称"+"\t"+"租金"+"\t"+"容量");
System.out.println("1."+"\t"+"奥迪A4"+"\t"+"500元/天"+"\t"+"4人");
System.out.println("2."+"\t"+"马自达6"+"\t"+"400元/天"+"\t"+"4人");
System.out.println("3."+"\t"+"金龙"+"\t"+"800元/天"+"\t"+"20人");
}

public void Choosecar(){
    System.out.println("请输入您要选择车的编号(用'#'结束输入):");
    }

}

3个回答

caozhy
caozhy   Ds   Rxr 2016.03.08 12:39

ChooseCar按理说可以执行,只是这里没有进一步的输入判断。

caozhy
caozhy   Ds   Rxr 2016.03.08 12:40

p1.ChooseCar();
这里Car是大写的
Choosecar
这里Car是小写的

是不是Car里面定义了一个大写的Car方法,但是为空。

caozhy
caozhy 回复32060049: 麻烦点下我回答右边的采纳,谢谢
2 年多之前 回复
qq_32060049
qq_32060049 解决了!真的很谢谢您!
2 年多之前 回复
bealing
bealing   Rxr 2016.03.08 12:44

p1.ChooseCar(); 但是你的方法是public void Choosecar(),拼错了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
self详解
1、self:是指针,指向调用此方法的当前对象/类。即是谁调用的这个方法,self就指向谁。如果是类调用的这个方法(此方法必须是类方法/静态方法),self就指向类;如果是对象调用的这个方法(实例方法/非静态方法),self就指向这个对象。也就是说如果self出现在对象方法中,self就代表对象;如果self出现在类方法中,self就代表类。 2、self指向成员变量—当成员方法中定义的局部变量
Javascript中改变this指针的指向的三种方法
转自:http://www.jb51.net/article/23170.htm 在查了大量的资料后,我总结了下面的三条规则,这三条规则,已经可以解决目前我所遇到的所有问题. 规则0:函数本身是一个特殊类型,大多数时候,可以认为是一个变量。  复制代码代码如下: function a()  {  alert(this);  }  或者  var a = funct
常量指针 给定一个字符串,在目标字符串中查找任意字符的第一个字符,返回指针
char *find_char(char const *source,char const *chars); 基本思想:从
对用父类指针(或引用)指向父类对象和子类对象时,从而用父类指针或者引用访问成员时的深刻理解;
赋值兼容规则永远不变,父类指针既可以指向父类对象,也可以指向子类对象;当父类指针指向父类对象时,访问父类的成员;当父类指针指向子类对象时,那么只能访问子类中从父类继承下来的那部分成员;不能访问子类独有的成员,如果访问,编译阶段会报错;函数隐藏(将父类的成员隐藏,通过子类对象或者在子类内部只能访问子类的同名成员;但是父类的成员仍然存在),是指当子类中有和父类同名的成员变量时,此时子类中有两个名字相同的
如何使用指向类的成员函数的指针(详解!)
我们首先复习一下"指向函数的指针"如何使用?   void print()   {   }   void (*pfun)(); //声明一个指向函数的指针,函数的参数是 void,函数的返回值是 void   pfun = print; //赋值一个指向函数的指针   (*pfun)(); //使用一个指向函数的指针    比较简单,不是吗?为什么*pfun 需要用()扩起来呢?
C++之指向对象成员函数的指针
1. 普通函数的指针变量定义    数据类型名 (*指针变量名)(参数列表);    例如:void (*p)( ); //p指向void型函数的指针变量;          p = fun;      //fun入口地址赋予p;          (*p)( );      //调用fun函数; 2. 指向对象成员函数的指针变量[指向对象成员函数的指针变量与普通函数的指针变量的根本区别
用指针指向指针的方法对5个字符串排序并输出
/* * Copyright (c) 2012, 烟台大学计算机学院 * All rights reserved. * 作 者: 刘同宾 * 完成日期:2012 年 12 月 07 日 * 版 本 号:v1.0 * * 输入描述:用指针指向指针的方法对5个字符串排序并输出
类的对象的定义以及指向类成员及成员方法的指针
一.对象定义 1.sizeof(class)给对象开辟内存 2.成员变量(成员对象)的初始换=》当前类的构造函数的初始化列表种指定 注意一点:成员变量(对象)的初始化顺序是:他们定义的顺序,而和初始化列表顺序无关 3 根据对象定义的方式,调整合适的构造函数 问题:有哪些成员变量必须在初始化列表中初始化: 1  引用的变量 2 const 常量 三种面向对象的成员方法: 一 类的普
C++之指向数据成员的指针和指向成员函数的指针
这里指向数据成员的指针和指向成员函数的指针与指向变量的指针和指向函数的指针进行对比来解释,比较好理解一些。指向变量的指针和指向函数的指针先举个例子:void func(int a, int b){ cout << a << " " << b << endl; }int main() { int a = 10, b =20; int *p = &a; //指向变量a的指针
用指向指针的指针的方法对n个整数排序并输出。
问题及代码: /* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All right reserved. *文件名称:main.cpp *作 者:郝昱猛 *完成日期:2016年4月28日 *版 本 号:v1.0 * *问题描述:用指向指针的指针的方法对n个整数排序并输出。 *输入描述:n和n个整数 *程序输出:排序后的整数