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

问题描述

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("请输入您要选择车的编号(用'#'结束输入):");
    }

}

解决方案

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

解决方案二:

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

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

解决方案三:

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

时间: 2024-09-22 09:43:58

java-Java中指针指向的方法无法期望目标的相关文章

java.io 中不使用close()方法资源为何cg无法回收?

问题描述 java.io 中不使用close()方法资源为何cg无法回收? 如题,new FileInputStream()新建的文件流都必须要调用close()方法关闭,close方法的介绍是关闭和释放系统资源,并且如果未使用则会资源泄露. 但当指向 FileInputStream()对象的指针离开该对象,CG不是应该回收资源么,用new创建的对象都在栈中,为什么这个FileInputStream()不会自己回收呢? 解决方案 文件流对像不样,不是由虚拟机来掌握的.文件流一般申请的空间是直接到

Java线程中start和run方法全面解析_java

自定义线程两种方法 自定义一个runnable接口的实现类,然后构造一个thread,即对thread传入一个runnable接口类. new一个thread或者写个thread子类,覆盖它的run方法.(new 一个thread并覆盖run方法实际上是匿名内部类的一种方式) 示例代码 public static void main(String[] args) { new Thread(new Runnable() { @Override public void run() { System.

Java 业务中获得pojo列表方法 命名 用list*** 还是get***List

问题描述 Java业务中获得pojo列表方法命名用list***还是get***List这只是个命名习惯,但是每个人都有自己看法,我是喜欢get***List,因为这样直观,得到的是一个List,感觉前者是是没有返回值的.说说你们的观点以及理由觉得是不是应该以流行的java框架的命名为佳? 解决方案 解决方案二:这只是命名习惯而已,个人认为在同一个团队中只要命名方式一致即可,至于到底哪种更优,这个是没有标准的.所以一个团队的命名规范可能取决于第一任技术领导.后面所有人都遵守即可.解决方案三:这个

用Java集合中的Collections.sort方法如何对list排序(两种方法)_java

第一种是list中的对象实现Comparable接口,如下: /** * 根据order对User排序 */ public class User implements Comparable <user> { private String name; private Integer order; public String getName() { return name; } public void setName(String name) { this.name = name; } publi

JAVA编程中串口通信的方法介绍

以前经常用C语言操作串口,实现一些发送接收之类的小功能,最近项目中也用到了串口通信,不过语言变成了Java,这个搞起来略蛋疼. Java说起来就是各种库各种引用,所以得到某些需求先google搜一把~~比如之前搞半天的读取网页内容,自己边琢磨边写,又是 charset,又是proxy,又是什么browsertype的,晕头转向,最后拿Jsoup一会儿就搞定了--不过使用之前要充分考虑可扩展性和 API的丰富程度,不然后面程序体积变大集成起来很蛋疼.好了废话不说,讲讲串口的问题-- 总述 Java

Java Thread中的属性和方法

手撸一次,加深印象,立此存照. ThreadB package demo.thread; public class ThreadB implements Runnable { public void run() { try { Thread.sleep(5000L); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("This is thread B."); Thread curT

java开发中常用到小方法

ArrayList转数组 /* * 获取优惠券全部策略ID String[] */ private String[] getStrategyIDArrayCache() throws Exception { ArrayList<String> list = new ArrayList<String>(); String[] strArray = new String[] {}; int RightsType = BusinessEmun.RightsType.优惠券.getValu

Java中声明类的方法

方法首部\返回类型\形式参数. 方法首部: 方法命名约定, 驼峰约定(camel casing), cas: Capital And Small. 形式参数: 可以通过实参的值来控制方法. 返回类型: 方法只能返回一个结果, 但可以通过集合的形式返回多个引用. 方法, 即一个由特定对象执行的函数. Java类中, 特征(属性和方法)声明的相对顺序是无关紧要的. 编程习惯:在类声明的最前面统一声明所有的属性, 即在类方法声明之前声明属性. 返回语句, return, 是跳出方法的语句, 可以返回v

关于Java Swing中的repaint()方法及setVisible()的问题

问题描述 关于Java Swing中的repaint()方法及setVisible()的问题 我写了一个JFrame, 加了一个JComponent,进行一些处理后使用removeAll()移除了JComponent中的所有组件,然后调用add(JPanel)添加了一个新的组件,最后调用repaint()方法显示这个JPanel 这时发现JPanel无法显示,但调整窗口大小后就能显示 因为调整窗口大小不是会自动调用repaint()方法吗?但是我自己调用了啊为什么不会显示嘞. 接下来, 我在re