import java.BufferedReader;
import java.InputStreamReader;
import java.IOException;
public class Point {
private double x;
private double y;
private double z;
Point (double a, double b, double c) {
x=a;
y=b;
z=c;
}
public void setX (double q) {
x=q;
}
public void setY (double w) {
y=w;
}
public void setZ (double e) { z=e;
}
public double distance (Point p) {
return (x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)+(z-p.z)*(z-p.z);
}
public static void main (String [] args) throws IOException {
Point p = new Point(1.0, 1.0, 1.0);
Point p1 = new Point(0.0, 0.0, 0.0);
System.out.println (p.distance(p1));
System.out.println("请输入要修改的x值");
p.setX ((new BufferedReader (new InputStreamReader (System.in))).readLine());
//System.out.println (p.distance(p1));
//p.setX (2.0);
System.out.println (p.distance (new Point (1.0,1.0,1.0)));
}}
就看BufferedReader这个就行了.程序大概意思是计算立体空间点到点的距离平方.我想改变每一个点的值.p.distance(2)可以,但用户不一定懂是吧.我想弄成在键盘上直接输入的那种.按自己思想写了这样的语句p.setX ((new BufferedReader (new InputStreamReader (System.in))).readLine());可惜编译不通过.郁闷了,我不是什么程序员啊.菜鸟刚学JAVA.没事就是想编编练练.呵呵.麻烦高手帮改改讲解下.还有就是书上写BufferedReader类不能接收int型.得用这个语句转 int l = Interger.parseInt.(line);这句什么意思啊?Interger是系统定义的类吗?里面参数那个line又是怎么回事.
import java.InputStreamReader;
import java.IOException;
public class Point {
private double x;
private double y;
private double z;
Point (double a, double b, double c) {
x=a;
y=b;
z=c;
}
public void setX (double q) {
x=q;
}
public void setY (double w) {
y=w;
}
public void setZ (double e) { z=e;
}
public double distance (Point p) {
return (x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)+(z-p.z)*(z-p.z);
}
public static void main (String [] args) throws IOException {
Point p = new Point(1.0, 1.0, 1.0);
Point p1 = new Point(0.0, 0.0, 0.0);
System.out.println (p.distance(p1));
System.out.println("请输入要修改的x值");
p.setX ((new BufferedReader (new InputStreamReader (System.in))).readLine());
//System.out.println (p.distance(p1));
//p.setX (2.0);
System.out.println (p.distance (new Point (1.0,1.0,1.0)));
}}
就看BufferedReader这个就行了.程序大概意思是计算立体空间点到点的距离平方.我想改变每一个点的值.p.distance(2)可以,但用户不一定懂是吧.我想弄成在键盘上直接输入的那种.按自己思想写了这样的语句p.setX ((new BufferedReader (new InputStreamReader (System.in))).readLine());可惜编译不通过.郁闷了,我不是什么程序员啊.菜鸟刚学JAVA.没事就是想编编练练.呵呵.麻烦高手帮改改讲解下.还有就是书上写BufferedReader类不能接收int型.得用这个语句转 int l = Interger.parseInt.(line);这句什么意思啊?Interger是系统定义的类吗?里面参数那个line又是怎么回事.
import java.io.InputStreamReader;
import java.io.IOException;public class Point { private double x;
private double y;
private double z; Point(double a, double b, double c) { x = a;
y = b;
z = c;
} public void setX(double q) { x = q;
} public void setY(double w) { y = w;
} public void setZ(double e) { z = e;
} public double distance(Point p) { return (x - p.x) * (x - p.x) + (y - p.y) * (y - p.y) + (z - p.z) * (z - p.z); } public static void main(String[] args) throws IOException { Point p = new Point(1.0, 1.0, 1.0);
Point p1 = new Point(0.0, 0.0, 0.0);
System.out.println(p.distance(p1));
System.out.println("请输入要修改的x值");
p.setX(Integer.parseInt((new BufferedReader(new InputStreamReader(System.in))).readLine()));
//System.out.println (p.distance(p1));
//p.setX (2.0);
System.out.println(p.distance(new Point(1.0, 1.0, 1.0)));
}
}
1.BufferedReader,InputStreamReader,IOException都是在java.io包中,所以import语句是如上写的
2.BufferedReader的readLine函数的功能是读入一行字符串,一行的标准是遇到文件换行符或者文件尾结束,函数的返回值是String类型,String当然不能同值给int型的数据了,需要用Integer.parseInt函数来转换,Integer是java.lang包中的类,程序在编译期间,会自动导入的,所以不需要import java.lang.Integer这句.parseInt的参数是字符串,返回值是相应的整数.
}
p.setX(Integer.parseInt((new BufferedReader(new InputStreamReader(System.in))).readLine()));
参数的类型不一致
学习Java,还是应该系统的学习,搞个基础的书,一步步看.当然,没有一本书会详尽Java的API函数,你需要一个Java帮助文档,一般是.chm格式的,网上多的是,中英文版都有.它里面记录了当时Java的大部分API函数,并且仔细说明了功能用法,是Java程序员必备的参考资料
import java.BufferedReader;
这样当然找不到了,我不是说了吗?BufferedReader在java.io包中
我的程序是:
import java.io.BufferedReader;
请仔细对比我和你的程序的区别
1.当将精度高的数据赋给精度低的数据时,需要程序员强制转换
如:
int i;
double d=1.0;
i=d;//这样编译是无法通过的,会提示你什么精度损失之类的
你需要改为: i=(int)d
2.当将精度低的数据赋给精度高的数据时,可以自动转换的
如:
int i=1;
double d=i;
这样是不会报错的.
你程序中的赋值,就是自动转换的
这改的.