Java 新手 这道题请予指点……
(1)设计一个商品数据类PClass,其中包含两个成员变量:商品编号(int pNumber)、单价(double pPrice);包含两个成员方法:显示编号showNumber()和显示单价showPrice();及两个构造函数PClass()和PClass(int number,double price)。
(2)设计一个完整的Java程序使用上题的类PClass,建立一个Pclass类的对象p,即PClass p=new PClass(1,1000.0)。然后使用showNumber()方法将商品编号显示出来,使用showPrice()方法将单价显示出来。
我写的程序段如下:
可是老有错误,请各位指点: 谢谢…………
public class PClass
{
int pNumber;
double pPrice;
int showNumber ( )
{
System.out.println( "商品编号是: "+pNumber);
}
double showPrice ( )
{
System.out.println( "价格是: "+pPrice);
}
PClass(){ }
void PClass(int number,double price)
{
pNumber=number;
pPrice=price;
}
}
public class Show extends PClass
{
public static void main(String[] args)
{
PClass p;
p=new PClass(1,1000.0);
p.showNumber();
p.showPrice();
}
}
[解决办法]
public class PClass
{
int pNumber;
double pPrice;
int showNumber ( )
{
System.out.println( "商品编号是: "+pNumber);
}
double showPrice ( )
{
System.out.println( "价格是: "+pPrice);
}
PClass(){ }
void PClass(int number,double price)//void去掉 ,构造函数不用写这个
{
pNumber=number;
pPrice=price;
}
}
[解决办法]
java 源文件中要是有多个类,只允许有一个类是 public 类
你改一下这两个类的修饰试试
[解决办法]
class PClass //多个类时只能有一个声名为public,且为带主方法的那个类
{
int pNumber;
double pPrice;
void showNumber ( ) //声名为void即可,不带返回类型
{
System.out.println( "商品编号是: "+pNumber);
}
void showPrice ( )/同上
{
System.out.println( "价格是: "+pPrice);
}
PClass(){ }
PClass(int number,double price)//构造函数不带返回类型
{
pNumber=number;
pPrice=price;
}
}
public class Show extends PClass
{
public static void main(String[] args)
{
PClass p;
p=new PClass(1,1000.0);
p.showNumber();
p.showPrice();
}
}
[解决办法]
下面这样不就更直观了。
用关键字:this.
不要忘了,给上封装哦。
=================================
public class PClass
{
int Number;
double Price;
public int showNumber ( )
{
System.out.println( "商品编号是: "+Number);
}
public double showPrice ( )
{
System.out.println( "价格是: "+Price);
}
public PClass(){ }
public PClass(int number,double price)
{
this.Number=number;
this.Price=price;
}
}
public class Show extends PClass
{
public static void main(String[] args)
{
PClass p;
p=new PClass(1,1000.0);
p.showNumber();
p.showPrice();
}
}
[解决办法]
构造函数不能加修饰,加上修饰后Java就把他当成普通方法处理了
[解决办法]
第二个类只是为了测试第一个类,无需extends第一个类。
只要在同一个包里,就可以调用得到第一个类了
[解决办法]
顶一下
[解决办法]
偶还是要纠正几个错误观点:
1,构造函数加上public 没有影响,这个我实验过了
2,PClass类里面的成员变量尽量设成private 提供公共接口就可以了
[解决办法]
package com.xgss.test;
public class PClass {
private int pNumber;
private double pPrice;
public void showNumber() {
System.out.println(pNumber);
}
public void showPrice() {
System.out.println (pPrice);
}
PClass() {
}
PClass (int number ,double price) {
this.pNumber=number;
this.pPrice=price;
}
public static void main (String args[]) {
PClass p = new PClass (1,1000.0);
p.showNumber();
p.showPrice();
}
}
[解决办法]
如果你写成这样的话,我想很多人会更开心的。
/**
* Source PClass.java
*/
public class PClass
{
private int pNumber;
private double pPrice;
public PClass()
{
this(0, 0);
}
public PClass(int number, double price)
{
this.pNumber = number;
this.pPrice = price;
}
public int showNumber()
{
return this.pNumber;
}
public double showPrice()
{
return this.price;
}
}
/**
* Source PClassTest.java
*/
public class PClassTest
{
public static void main(String... args)
{
PClass p = new PClass(1, 1000.0);
System.out.println(p.showNumber());
System.out.println(p.showPrice());
}
}
