帮我做一下题,JAVA的,但是我要原因,错的题就麻烦高手给我写的详细点吧!谢谢啊!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了帮我做一下题,JAVA的,但是我要原因,错的题就麻烦高手给我写的详细点吧!谢谢啊!相关的知识,希望对你有一定的参考价值。
一.判断正误
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.有时候为了避免引起混淆,构造方法的方法名可以不与所属类名同名?
错的,构造方法必须与类名相同。
这是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");
参考技术A 选择题
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;
参考技术B 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
我要cf破1000题!!!
我现在cf是292题,还差1000-292=708题。
水平的提高确实和题数不完全相关,但是问题是现在训练强度确实太低了。
我打算在两个月之内达到1000题,也就是说1天至少10题,两个月60天,720/60=12题/天,平均每天做12题就完成任务了。
为了提高效率,我应该不会在一道题卡两个小时以上,会直接看题解,保证平均40分钟补一个题。
以上是关于帮我做一下题,JAVA的,但是我要原因,错的题就麻烦高手给我写的详细点吧!谢谢啊!的主要内容,如果未能解决你的问题,请参考以下文章