1、构造方法的格式是什么?有哪些注意事项?
答:
方法名与类名相同;
没有返回值类型,连void都没有;
没有具体的返回值。
注意:如果没有给出构造方法,系统会自动提供一个无参构造方法
如果给出了构造方法,系统将不会提供默认的无参构造方法
建议永远给出无参构造方法
2、构造方法可以重载吗? 里边可以有return语句吗?
答:
可以,没有return;
3、给成员变量赋值有几种方式?有什么区别?
答:
通过构造方法和setXxx()来赋值;
通过构造方法赋值的话,修改值需要在栈内存中重新赋值,执行完构造方法后弹栈
而setXxx()方法修改对象值比较灵活
4、static关键字有什么特点,使用的时候有什么注意事项?
答:
A:随着类的加载而加载;
B: 优先于对象存在,随着字节文件的加载而加载
C:被类的所有对象共享
D: 通过类名调用
其本身也可以通过对象调用;
推荐使用类名调用;
静态修饰的内容,一般我们称其为:与类相关的,类成员
注意事项:
A:静态方法中没有this关键字
静态是随着类的加载而加载的,this是随着对象的创建而存在的
静态比对象先存在
B:静态方法只能访问静态的成员变量和成员方法
a:静态方法
成员变量:只能访问静态变量
成员方法:只能访问静态成员方法
b:非静态方法
成员变量:可以是静态的,也可以是非静态的
成员方法:可以是静态的成员方法,也可以是非静态的成员方法
简单记:
静态只能访问静态
5、public static void main(String[] args) {
Person p = new Person();
},这段代码在内存中做了哪些事情?
答:参考答案,
A:通过类加载器,将Person类的字节码文件加载到内存中。
B:在main函数中创建Person类的引用p,等待接收堆内存中传来的地址值。
C:成员变量进堆,系统给出默认值。
D:对成员变量进行显示初始化(如果有)。
E:构造方法进栈,对成员变量进行赋值。执行完后构造方法弹栈。
F:将堆中创建好的Person对象的地址值赋值给main函数的p。至此,对象创建完毕。
6、静态变量和成员变量的区别是什么?
答:
静态变量也叫类变量,成员变量也叫对象变量
A:所属不同
静态变量属于类
成员变量属于对象
B:内存中的位置不同
静态变量存储在方法区的静态区
成员变量存储于堆内存
C:内存中出现的时间不同
静态变量先于对象存在,随着类的加载而存在,随着类的消失而消失
成员变量随着对象的创建而存在,随着类的消失而消失
D:调用不同
静态变量可以通过类名调用也可以通过对象调用
成员变量只能通过对象来调用
7、如何使用JDK提供的帮助文档?
答:
A:找到文档,打开文档
B:点击显示,找到索引,出现输入框
C:知道找谁
D:看这个类的结构(需不需要导包)
成员变量 字段
构造方法 构造方法
成员方法 方法
8、通过Math类如何获取1-100之间的随机数?
答:
(Math.random()*100)+1
9、需求:定义一个长方形类,定义求周长和面积的方法,然后定义一个测试类进行测试。
答:
class RectangleDemo{
public static void main(String[] args){
Rectangle1 r=new Rectangle1();
r.setWidth(10);
r.setLength(10);
r.getArea();
r.getZhouChang();
System.out.println("面积是:"+r.getArea()+"---周长是"+r.getZhouChang());
}
}
class Rectangle1{
private int length;
private int width;
public Rectangle1(){
}
public Rectangle1(int length,int width){
this.length=length;
this.width=width;
}
public void setLength(int length){
this.length=length;
}
public int getLnegth(){
return length;
}
public void setWidth(int width){
this.width=width;
}
public int width(){
return width;
}
public int getArea(){
return (length*width);
}
public int getZhouChang(){
return (length+width)*2;
}
}
10、根据需求,完成如下代码(按照标准格式写),并在测试类中进行测试。
需求一:
员工类Employee
属性:姓名name,工号id,工资salary
行为:显示所有成员信息的方法show()
答:
class EmployeeDemo{
public static void main(String[] args){
Employee e=new Employee();
e.setName("JACKSON");
e.setId("it-heima0041");
e.setSlary(8800.21);
e.show();
}
}
class Employee{
private String name;
private String id;
private double salary;
public Employee(){}
public Employee(String name,String id,double salary){
this.name=name;
this.id=id;
this.salary=salary;
}
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setId(String id){
this.id=id;
}
public String getId(){
return id;
}
public void setSlary(double salary){
this.salary=salary;
}
public double sanlary(){
return salary;
}
public void show(){
System.out.println("Name:"+name+" Id:"+id+" Slary:"+salary+"yuan");
}
}
需求二:
动物类Animal
属性:姓名name,年龄age
行为:吃饭eat,睡觉sleep
答:
class AnimalDemo{
public static void main(String[] args){
Animal a=new Animal();
a.setName("Tom");
a.setAge(2);
a.show();
a.eat();
a.sleep();
}
}
class Animal{
private String name;
private int age;
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age=age;
}
public int getAge(){
return age;
}
public void sleep(){
System.out.println("sleep");
}
public void study(){
System.out.println("eat");
}
public void show(){
System.out.println("Name is:"+name+"---Age is:"+age);
}
}
需求三:
人类Person
属性:姓名name,年龄age,性别gender
行为:学习study,睡觉sleep
答:
class PersonDemo2{
public static void main(String[] args){
Person2.study();
Person2.sleep();
System.out.println();
Person2 p=new Person2();
p.setName("jacky");
p.setAge(25);
p.setGender("man");
p.show();
p.study();
p.sleep();
}
}
class Person2{
private String name;
private int age;
private String gender;
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age=age;
}
public int getAge(){
return age;
}
public void setGender(String gender){
this.gender=gender;
}
public String getGender(){
return gender;
}
public static void study(){
System.out.println("study");
}
public static void sleep(){
System.out.println("sleep");
}
public void show(){
System.out.println("Name is:"+name+"---Age is:"+age+"Gender is:"+gender);
}
}
11、自学Random类,然后通过Random类来实现猜数字的小游戏。
答:
import java.util.Scanner;
class GuessNumber{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int guessNumber=(int)(Math.random()*100)+1;
//System.out.println(guessNumber);
System.out.println("请输入一个数字1——100之间");
while(true){
int result=sc.nextInt();
if(result>guessNumber){
System.out.println("大了,完蛋");
}else if(result<guessNumber){
System.out.println("小了,放开点猜");
}else{
System.out.println("恭喜你,猜对了");
}
}
}
}
|
|