
Java编程有一处不是很明白?求高手解答?谢谢!
题目:编写一个名为Input的类,该类属于com.tools包。使用该类实现各种数据类型(字符型除外)数据输入,其中的方法有readInt()、readDoube()、r...
题目:
编写一个名为Input的类,该类属于com.tools包。使用该类实现各种数据类型(字符型除外)数据输入,其中的方法有readInt()、readDoube()、readString()等。在用户程序中通过调用Input.readDouble()即可从键盘上输入double型数据。
源程序:
importjava.util.Scanner;
public classInput{
static Scanner sc=new Scanner(System.in);
public static byte readByte(){
System.out.print("Please input abyte value:");
return sc.nextByte();
}
public static short readShort(){
System.out.print("Please input ashort value:");
return sc.nextShort();
}
public static int readInt(){
System.out.print("Please input aint value:");
return sc.nextInt();
}
public static long readLong(){
System.out.print("Please input along value:");
return sc.nextLong();
}
public static float readFloat(){
System.out.print("Please input afloat value:");
return sc.nextFloat();
}
public static double readDouble(){
System.out.print("Please input adouble value:");
return sc.nextDouble();
}
public static boolean readBoolean(){
System.out.print("Please input aboolean value:");
return sc.nextBoolean();
}
public static void main(String[] args){
double d=Input.readDouble();
System.out.println("d="+d);
}
}
这个程序是正确的,但是我不太明白为什么在这里static Scanner sc=new Scanner(System.in);必须要写上static呢?不写可以吗?还有就是程序中的方法中都写了static,实在不太明白static的作用,程序中有无static有什么区别?希望能讲的详细一点。 展开
编写一个名为Input的类,该类属于com.tools包。使用该类实现各种数据类型(字符型除外)数据输入,其中的方法有readInt()、readDoube()、readString()等。在用户程序中通过调用Input.readDouble()即可从键盘上输入double型数据。
源程序:
importjava.util.Scanner;
public classInput{
static Scanner sc=new Scanner(System.in);
public static byte readByte(){
System.out.print("Please input abyte value:");
return sc.nextByte();
}
public static short readShort(){
System.out.print("Please input ashort value:");
return sc.nextShort();
}
public static int readInt(){
System.out.print("Please input aint value:");
return sc.nextInt();
}
public static long readLong(){
System.out.print("Please input along value:");
return sc.nextLong();
}
public static float readFloat(){
System.out.print("Please input afloat value:");
return sc.nextFloat();
}
public static double readDouble(){
System.out.print("Please input adouble value:");
return sc.nextDouble();
}
public static boolean readBoolean(){
System.out.print("Please input aboolean value:");
return sc.nextBoolean();
}
public static void main(String[] args){
double d=Input.readDouble();
System.out.println("d="+d);
}
}
这个程序是正确的,但是我不太明白为什么在这里static Scanner sc=new Scanner(System.in);必须要写上static呢?不写可以吗?还有就是程序中的方法中都写了static,实在不太明白static的作用,程序中有无static有什么区别?希望能讲的详细一点。 展开
展开全部
恩,这是必须有的,static修饰的叫做静态xx,修饰变量就叫静态变量,修饰函数就叫静态函数。
谈谈static的作用吧,给你个例子:
如果 readDouble 函数不加 static,那么在调用的时候,就需要有一个 Input的实例对象才能调用,如下:
Input input = new Input();
double d = input.readDouble();
而对于static方法而言,不需要实例变量就可以直接用类名来调用,就跟你main函数中的一样
double d = Input.readDouble();
从这个例子中,可以发现,static修饰的变量或者函数,那么这些变量和函数就是属于“类”这个范围的,因此可以直接用类名来调用
而没有static修饰的变量或者函数,那么这些变量和函数就是属于类的实例对象的,就需要new 出一个实例对象之后,才能进行调用
谈谈static的作用吧,给你个例子:
如果 readDouble 函数不加 static,那么在调用的时候,就需要有一个 Input的实例对象才能调用,如下:
Input input = new Input();
double d = input.readDouble();
而对于static方法而言,不需要实例变量就可以直接用类名来调用,就跟你main函数中的一样
double d = Input.readDouble();
从这个例子中,可以发现,static修饰的变量或者函数,那么这些变量和函数就是属于“类”这个范围的,因此可以直接用类名来调用
而没有static修饰的变量或者函数,那么这些变量和函数就是属于类的实例对象的,就需要new 出一个实例对象之后,才能进行调用
展开全部
static 修饰的是静态成员和变量
要说这个就要说到 类和实例对象的关系
static 修饰的是类的属性和方法, 只要有了这个类, 就有这些方法和属性了,
没有static修饰的属性和方法是对象的属性和方法, 只要创建出对象,才能使用
一般工具类都用static 修饰是因为, 工具类对于每一个使用他的对象来说, 它都是一样的, 只有一个,所以不用创建新对象, 那就用static 可以能过类名 直接使用
要说这个就要说到 类和实例对象的关系
static 修饰的是类的属性和方法, 只要有了这个类, 就有这些方法和属性了,
没有static修饰的属性和方法是对象的属性和方法, 只要创建出对象,才能使用
一般工具类都用static 修饰是因为, 工具类对于每一个使用他的对象来说, 它都是一样的, 只有一个,所以不用创建新对象, 那就用static 可以能过类名 直接使用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
static表示这个函数或变量是类函数或类变量,可以之间通过类名访问.还有static变量是唯一的 与对象无关
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询