帮我做一下题,JAVA的,但是我要原因,错的题就麻烦高手给我写的详细点吧!谢谢啊!
一.判断正误1.有时候为了避免引起混淆,构造方法的方法名可以不与所属类名同名?错的,构造方法必须与类名相同。2.构造方法一般不允许有任何返回值,因此需要在返回类型处标注为...
一.判断正误
1.有时候为了避免引起混淆,构造方法的方法名可以不与所属类名同名?
错的,构造方法必须与类名相同。
2.构造方法一般不允许有任何返回值,因此需要在返回类型处标注为void?
错的,没有返回值,不能标注void。
3.任何类都必须显示的定义该类的构造方法,以便对类的成员进行初始化操作。
错的,构造器不是必须都要写的,Java可以给你赠送一个的。
4.在同一个类中,不允许存在具有相同方法名和相同参数列表的方法,即使该方法的返回类型不相同。
对的。
二、
选择题
1.下面哪些类的定义,可以通过“new Person()”生成类Person 的实例。选择A
A.
public class Person
{
}
B.
public class Person
{
public Person(void){}
}
C.
public class Person
{
public Person(String name){}
}
D.
public class Person
{
public void Person(){}
public Person(String name){};
}
2.给出下面的代码片断。。。下面的哪些陈述为true?
1) public void create() {
2) Vector myVect;
3) myVect = new Vector();
4) }
A. 第二行的声明变量myVect 不会为该变量分配内存空间。
B. 第二行的声明变量myVect,并为其分配内存空间,该空间将用于保存Vector 对象
的引用值。
C. 第二行语句创建一个Vector 类对象。
D. 第三行语句创建一个Vector 类对象。
E. 第三行语句为一个Vector 类对象分配内存空间。
3.下面关于变量及其范围的陈述哪些是对的?D
A. 实例变量是类的成员变量。
B. 实例变量用关键字static 声明。static是静态变量。
C. 在方法中定义的局部变量在该方法被执行时创建。不是方法执行时创建,是使用时进行创建的
D. 局部变量在使用前必须被初始化。
4. 给出下面的代码:A
public class Person{
int arr[] = new int[10];这个非静态的
public static void main(String a[]) {而这个main方法是静态的,静态方法不能直接访问非静态的。
System.out.println(arr[1]);
}
}
哪些叙述是对的?
A. 编译时出错。
B. 编译时正确而运行时出错。
C. 输出0。
D. 输出null。
四.编程题
用面向对象的方式编写一个程序,该程序为一个猜数字游戏,有一个机器角色,该角色有一
个用于随机产生数字的方法,有若干个玩家角色用,每个玩家都有姓名属性,和一个猜数字
方法,用于猜测随机数字,有一个主控程序,用于控制游戏流程,程序运行起来,机器先产
生一个1-10的随机数,然后各个玩家对象进行猜测,猜对了显示玩家姓名并提示获胜,猜错
了,程序循环运行,继续进行下一轮的猜测。 展开
1.有时候为了避免引起混淆,构造方法的方法名可以不与所属类名同名?
错的,构造方法必须与类名相同。
2.构造方法一般不允许有任何返回值,因此需要在返回类型处标注为void?
错的,没有返回值,不能标注void。
3.任何类都必须显示的定义该类的构造方法,以便对类的成员进行初始化操作。
错的,构造器不是必须都要写的,Java可以给你赠送一个的。
4.在同一个类中,不允许存在具有相同方法名和相同参数列表的方法,即使该方法的返回类型不相同。
对的。
二、
选择题
1.下面哪些类的定义,可以通过“new Person()”生成类Person 的实例。选择A
A.
public class Person
{
}
B.
public class Person
{
public Person(void){}
}
C.
public class Person
{
public Person(String name){}
}
D.
public class Person
{
public void Person(){}
public Person(String name){};
}
2.给出下面的代码片断。。。下面的哪些陈述为true?
1) public void create() {
2) Vector myVect;
3) myVect = new Vector();
4) }
A. 第二行的声明变量myVect 不会为该变量分配内存空间。
B. 第二行的声明变量myVect,并为其分配内存空间,该空间将用于保存Vector 对象
的引用值。
C. 第二行语句创建一个Vector 类对象。
D. 第三行语句创建一个Vector 类对象。
E. 第三行语句为一个Vector 类对象分配内存空间。
3.下面关于变量及其范围的陈述哪些是对的?D
A. 实例变量是类的成员变量。
B. 实例变量用关键字static 声明。static是静态变量。
C. 在方法中定义的局部变量在该方法被执行时创建。不是方法执行时创建,是使用时进行创建的
D. 局部变量在使用前必须被初始化。
4. 给出下面的代码:A
public class Person{
int arr[] = new int[10];这个非静态的
public static void main(String a[]) {而这个main方法是静态的,静态方法不能直接访问非静态的。
System.out.println(arr[1]);
}
}
哪些叙述是对的?
A. 编译时出错。
B. 编译时正确而运行时出错。
C. 输出0。
D. 输出null。
四.编程题
用面向对象的方式编写一个程序,该程序为一个猜数字游戏,有一个机器角色,该角色有一
个用于随机产生数字的方法,有若干个玩家角色用,每个玩家都有姓名属性,和一个猜数字
方法,用于猜测随机数字,有一个主控程序,用于控制游戏流程,程序运行起来,机器先产
生一个1-10的随机数,然后各个玩家对象进行猜测,猜对了显示玩家姓名并提示获胜,猜错
了,程序循环运行,继续进行下一轮的猜测。 展开
展开全部
就5分你还想要详细的啊 我就简单点吧
一.判断正误
1.有时候为了避免引起混淆,构造方法的方法名可以不与所属类名同名?
错的,构造方法必须与类名相同。
这是java规范 构造函数必须是无返回值的类同名函数---可以重载
2.构造方法一般不允许有任何返回值,因此需要在返回类型处标注为void?
错的,没有返回值,不能标注void。
这个就是第一题说的。。。不需要写返回值 只需要修饰符和名字 参数 内容
3.任何类都必须显示的定义该类的构造方法,以便对类的成员进行初始化操作。
错的,构造器不是必须都要写的,Java可以给你赠送一个的。
这里不是赠送 是java有默认的无参数构造函数 该默认的构造函数是这样
public ClassName()
{}
这样你就可以使用例如 ClassName c =new ClassName();来实例化对象
4.在同一个类中,不允许存在具有相同方法名和相同参数列表的方法,即使该方法的返回类型不相同。
对的。
这里考的意图是函数的签名。 我们是如何通过函数签名的不同来分辨不同的函数
二、
选择题
1.下面哪些类的定义,可以通过“new Person()”生成类Person 的实例。选择A 虽然没有自定义的构造函数 但是题目中只需要实例化一个无参数的对象。所以可以直接使用默认构造函数
A.
public class Person
{
}
B.
public class Person
{
public Person(void){}
}
C.
public class Person
{
public Person(String name){}
}
D.
public class Person
{
public void Person(){}
public Person(String name){};
}
2.给出下面的代码片断。。。下面的哪些陈述为true? BCE
1) public void create() {
2) Vector myVect;
3) myVect = new Vector();
4) }
A. 第二行的声明变量myVect 不会为该变量分配内存空间。
B. 第二行的声明变量myVect,并为其分配内存空间,该空间将用于保存Vector 对象
的引用值。
C. 第二行语句创建一个Vector 类对象。
D. 第三行语句创建一个Vector 类对象。
E. 第三行语句为一个Vector 类对象分配内存空间。
3.下面关于变量及其范围的陈述哪些是对的?D
A. 实例变量是类的成员变量。
B. 实例变量用关键字static 声明。static是静态变量。
C. 在方法中定义的局部变量在该方法被执行时创建。不是方法执行时创建,是使用时进行创建的
D. 局部变量在使用前必须被初始化。
4. 给出下面的代码:A
public class Person{
int arr[] = new int[10];这个非静态的
public static void main(String a[]) {而这个main方法是静态的,静态方法不能直接访问非静态的。
System.out.println(arr[1]);
}
}
哪些叙述是对的?
A. 编译时出错。 因为该整型数组是隶属于Person对象的而main方法是访问不到的、 如果想访问 要new Person().arr使用
B. 编译时正确而运行时出错。
C. 输出0。
D. 输出null。
四.编程题
用面向对象的方式编写一个程序,该程序为一个猜数字游戏,有一个机器角色,该角色有一
个用于随机产生数字的方法,有若干个玩家角色用,每个玩家都有姓名属性,和一个猜数字
方法,用于猜测随机数字,有一个主控程序,用于控制游戏流程,程序运行起来,机器先产
生一个1-10的随机数,然后各个玩家对象进行猜测,猜对了显示玩家姓名并提示获胜,猜错
了,程序循环运行,继续进行下一轮的猜测。
貌似可以写写
机器类
class Machine
{
public Machine(){} //默认构造函数
public Integer guessNumber() //猜数字方法
{
return new Random().nextInt(10);
}
}
public class Person
{
private String name;
private Integer result;
public void setName(String name)
{this.name=name; }
public String getName()
{return this.name;}
public Integer getResult()
{ return this.result; }
public void inputNumber()
{
System.out.println("please write down your name");
this.name=System.in();
System.out.println("please enter a Number on keyboard");
this.result=System.in(); //接收输入的方法我好像忘了。
System.out.println("You have input a Integer");
}
}
class Main
{
public static void main(String[] args)
{
boolean flag=true;
while(flag)
{
Machine m=new Machine();
Integer giveresult=m.guessNumber();
Person p1=new Person();
p1.inputNumber();
Integer inputresult=p1.getResult();
if(inputresult.equals(giveresult))
{ System.out.println("You win and your name is "+p1.getName());
flag=false;
}
else System.out.println("Your answer is not matching");
}
}
}
一.判断正误
1.有时候为了避免引起混淆,构造方法的方法名可以不与所属类名同名?
错的,构造方法必须与类名相同。
这是java规范 构造函数必须是无返回值的类同名函数---可以重载
2.构造方法一般不允许有任何返回值,因此需要在返回类型处标注为void?
错的,没有返回值,不能标注void。
这个就是第一题说的。。。不需要写返回值 只需要修饰符和名字 参数 内容
3.任何类都必须显示的定义该类的构造方法,以便对类的成员进行初始化操作。
错的,构造器不是必须都要写的,Java可以给你赠送一个的。
这里不是赠送 是java有默认的无参数构造函数 该默认的构造函数是这样
public ClassName()
{}
这样你就可以使用例如 ClassName c =new ClassName();来实例化对象
4.在同一个类中,不允许存在具有相同方法名和相同参数列表的方法,即使该方法的返回类型不相同。
对的。
这里考的意图是函数的签名。 我们是如何通过函数签名的不同来分辨不同的函数
二、
选择题
1.下面哪些类的定义,可以通过“new Person()”生成类Person 的实例。选择A 虽然没有自定义的构造函数 但是题目中只需要实例化一个无参数的对象。所以可以直接使用默认构造函数
A.
public class Person
{
}
B.
public class Person
{
public Person(void){}
}
C.
public class Person
{
public Person(String name){}
}
D.
public class Person
{
public void Person(){}
public Person(String name){};
}
2.给出下面的代码片断。。。下面的哪些陈述为true? BCE
1) public void create() {
2) Vector myVect;
3) myVect = new Vector();
4) }
A. 第二行的声明变量myVect 不会为该变量分配内存空间。
B. 第二行的声明变量myVect,并为其分配内存空间,该空间将用于保存Vector 对象
的引用值。
C. 第二行语句创建一个Vector 类对象。
D. 第三行语句创建一个Vector 类对象。
E. 第三行语句为一个Vector 类对象分配内存空间。
3.下面关于变量及其范围的陈述哪些是对的?D
A. 实例变量是类的成员变量。
B. 实例变量用关键字static 声明。static是静态变量。
C. 在方法中定义的局部变量在该方法被执行时创建。不是方法执行时创建,是使用时进行创建的
D. 局部变量在使用前必须被初始化。
4. 给出下面的代码:A
public class Person{
int arr[] = new int[10];这个非静态的
public static void main(String a[]) {而这个main方法是静态的,静态方法不能直接访问非静态的。
System.out.println(arr[1]);
}
}
哪些叙述是对的?
A. 编译时出错。 因为该整型数组是隶属于Person对象的而main方法是访问不到的、 如果想访问 要new Person().arr使用
B. 编译时正确而运行时出错。
C. 输出0。
D. 输出null。
四.编程题
用面向对象的方式编写一个程序,该程序为一个猜数字游戏,有一个机器角色,该角色有一
个用于随机产生数字的方法,有若干个玩家角色用,每个玩家都有姓名属性,和一个猜数字
方法,用于猜测随机数字,有一个主控程序,用于控制游戏流程,程序运行起来,机器先产
生一个1-10的随机数,然后各个玩家对象进行猜测,猜对了显示玩家姓名并提示获胜,猜错
了,程序循环运行,继续进行下一轮的猜测。
貌似可以写写
机器类
class Machine
{
public Machine(){} //默认构造函数
public Integer guessNumber() //猜数字方法
{
return new Random().nextInt(10);
}
}
public class Person
{
private String name;
private Integer result;
public void setName(String name)
{this.name=name; }
public String getName()
{return this.name;}
public Integer getResult()
{ return this.result; }
public void inputNumber()
{
System.out.println("please write down your name");
this.name=System.in();
System.out.println("please enter a Number on keyboard");
this.result=System.in(); //接收输入的方法我好像忘了。
System.out.println("You have input a Integer");
}
}
class Main
{
public static void main(String[] args)
{
boolean flag=true;
while(flag)
{
Machine m=new Machine();
Integer giveresult=m.guessNumber();
Person p1=new Person();
p1.inputNumber();
Integer inputresult=p1.getResult();
if(inputresult.equals(giveresult))
{ System.out.println("You win and your name is "+p1.getName());
flag=false;
}
else System.out.println("Your answer is not matching");
}
}
}
展开全部
选择题
2.ADE
问什么不选B?
答:本来不想讲,不过我估计很多人都不理解,所以还是讲一下吧。
内存管理员就相当于一个大老板,Vecter v;这句声明就相当于开口向大老板借钱。"大老板借不借给你呢"就是现在的问题。如果我是老板,你找我借钱,除非你的确是需要,我才会借给你。否则我借给你了,但是你不用这笔钱,那我可亏了。来看下面这个例子:
public static FileInputStream getStream(){
FileInputStream fis;
try{
fis=new FileInputStream("");
}catch(IOException){}
return fis;//ERROR:没有对变量fis进行初始化。
}
大家可以试试看这个方法能不能编译,如果能通过,你是高手。由于fis变量的声明并不分派内存,甚至指针的内存,所以你根本不能使用fis。这里的声明只是告诉编译器有这么个东西。你应当把第一句改为FileInputStream fis=null;,这是因为只有进行赋值才会分派内存,null代表内存地址为0。
下面这个例子一个意思:
public class test{
public static void main(String... args){
int i;
if(i=0)
System.out.println("牛人!");
}
}
这个例子同样是错的,原因就在声明变量并不会赋予内存。
接下来可能有人会问了,下面这种情况算什么:
public class fieldtest{
public int getField(){return field;}
private int field;//这里没有赋予初值!!!
public static void main(String... args){
System.out.println(new fieldtest().getField()*10);
}
}
这个类里的域(成员变量)没有赋予初值,但是程序依然正确执行,这是问什么?这是因为类的域变量会有编译器自动进行初始化操作,相当于private int field=0;。而类型为类的域会初始化为null,boolean为false等等不再细说。其实在编译的时候编译器还会帮我们进行一定的优化:
int i;
System.out.println("");
i=0;
System.out.println(i);
编译后这段代码会变为:
System.out.println("");
int i=0;
System.out.println(i);
由于变量只是声明没有什么意义,所以编译器会把变量的声明调到第一次赋值的地方。这样做当然使我们的程序更有效率。
将到这里,相信大家对于变量的声明与赋值一定有了很深刻的认识,其实当然还有更深入的内容,不过我能力有限,不能再多讲了。
程序:
import java.util.Random;
import java.util.Scanner;
public class GuessNumber {
public void startGame(){
while(true){
number=robot.getRandomNumber();
for(User user:users){
user.guess();
if(number==user.getGuess()){
System.out.println("Oh, you win, "+user.getName()+"! Congratulation!");
System.out.println("Next game?(Y/N):");
Scanner scan=new Scanner(System.in);
if(scan.next().equals("Y")){
continue;
}else{
break;
}
}
}
System.out.println("Oops, nobody got it, would like to try again?(Y/N)");
Scanner scan=new Scanner(System.in);
if(!scan.next().equals("Y"))
break;
}
}
private Robot robot=new Robot();
private int number;
private User[] users=new User[]{new User("Piter"),new User("Nathan"),new User("Beata")};
public static void main(String[] args){
GuessNumber gn=new GuessNumber();
gn.startGame();
}
private static final class Robot{
public int getRandomNumber(){
Random random=new Random();
return random.nextInt(10)+1;
}
}
private static final class User{
public User(String name){
this.name=name;
}
public String getName(){
return name;
}
public void guess(){
System.out.println("Your turn, "+name+", please guess a number:");
Scanner scan=new Scanner(System.in);
guess=scan.nextInt();
}
public int getGuess(){
return guess;
}
private String name;
private int guess;
}
}
2.ADE
问什么不选B?
答:本来不想讲,不过我估计很多人都不理解,所以还是讲一下吧。
内存管理员就相当于一个大老板,Vecter v;这句声明就相当于开口向大老板借钱。"大老板借不借给你呢"就是现在的问题。如果我是老板,你找我借钱,除非你的确是需要,我才会借给你。否则我借给你了,但是你不用这笔钱,那我可亏了。来看下面这个例子:
public static FileInputStream getStream(){
FileInputStream fis;
try{
fis=new FileInputStream("");
}catch(IOException){}
return fis;//ERROR:没有对变量fis进行初始化。
}
大家可以试试看这个方法能不能编译,如果能通过,你是高手。由于fis变量的声明并不分派内存,甚至指针的内存,所以你根本不能使用fis。这里的声明只是告诉编译器有这么个东西。你应当把第一句改为FileInputStream fis=null;,这是因为只有进行赋值才会分派内存,null代表内存地址为0。
下面这个例子一个意思:
public class test{
public static void main(String... args){
int i;
if(i=0)
System.out.println("牛人!");
}
}
这个例子同样是错的,原因就在声明变量并不会赋予内存。
接下来可能有人会问了,下面这种情况算什么:
public class fieldtest{
public int getField(){return field;}
private int field;//这里没有赋予初值!!!
public static void main(String... args){
System.out.println(new fieldtest().getField()*10);
}
}
这个类里的域(成员变量)没有赋予初值,但是程序依然正确执行,这是问什么?这是因为类的域变量会有编译器自动进行初始化操作,相当于private int field=0;。而类型为类的域会初始化为null,boolean为false等等不再细说。其实在编译的时候编译器还会帮我们进行一定的优化:
int i;
System.out.println("");
i=0;
System.out.println(i);
编译后这段代码会变为:
System.out.println("");
int i=0;
System.out.println(i);
由于变量只是声明没有什么意义,所以编译器会把变量的声明调到第一次赋值的地方。这样做当然使我们的程序更有效率。
将到这里,相信大家对于变量的声明与赋值一定有了很深刻的认识,其实当然还有更深入的内容,不过我能力有限,不能再多讲了。
程序:
import java.util.Random;
import java.util.Scanner;
public class GuessNumber {
public void startGame(){
while(true){
number=robot.getRandomNumber();
for(User user:users){
user.guess();
if(number==user.getGuess()){
System.out.println("Oh, you win, "+user.getName()+"! Congratulation!");
System.out.println("Next game?(Y/N):");
Scanner scan=new Scanner(System.in);
if(scan.next().equals("Y")){
continue;
}else{
break;
}
}
}
System.out.println("Oops, nobody got it, would like to try again?(Y/N)");
Scanner scan=new Scanner(System.in);
if(!scan.next().equals("Y"))
break;
}
}
private Robot robot=new Robot();
private int number;
private User[] users=new User[]{new User("Piter"),new User("Nathan"),new User("Beata")};
public static void main(String[] args){
GuessNumber gn=new GuessNumber();
gn.startGame();
}
private static final class Robot{
public int getRandomNumber(){
Random random=new Random();
return random.nextInt(10)+1;
}
}
private static final class User{
public User(String name){
this.name=name;
}
public String getName(){
return name;
}
public void guess(){
System.out.println("Your turn, "+name+", please guess a number:");
Scanner scan=new Scanner(System.in);
guess=scan.nextInt();
}
public int getGuess(){
return guess;
}
private String name;
private int guess;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1,DataoutpuStream st=new DataoutputStream(System.in);
int i=0;
String str[]=new String[10];
for(i;i<10;i++){
str[i]=st.getBytes();
}
for(i=9;i>0;i--){
system.out.pring(st[i]);
}
2.
int sum=o;
for(int i=10;i<=20;i++){
sum=sum+i;
}
3麻烦,太多!
4,String[][] str = new String[9][9];
5,数组下标
6,没赋值前null
7,对象创建之后不能改变,下标从0开始
8,t.length = 2 t[0].length = 3
int i=0;
String str[]=new String[10];
for(i;i<10;i++){
str[i]=st.getBytes();
}
for(i=9;i>0;i--){
system.out.pring(st[i]);
}
2.
int sum=o;
for(int i=10;i<=20;i++){
sum=sum+i;
}
3麻烦,太多!
4,String[][] str = new String[9][9];
5,数组下标
6,没赋值前null
7,对象创建之后不能改变,下标从0开始
8,t.length = 2 t[0].length = 3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |