1、构造方法的格式是什么?有哪些注意事项?
权限修饰符 类名(){
}
1.如果在类里,没有存在构造方法,java编译器会自动为其添加一个无参的构造方法
2.如果在类里,已经存在构造方法,java编译器就不会自动为其添加一个无参的构造方法
2、构造方法可以重载吗? 里边可以有return语句吗?
可以重载 可以,但是不能拥有具体的返回值
3、给成员变量赋值有几种方式?有什么区别?
两种:
1.构造函数 对对象的属性进行初始化赋值
2.setXxx() 修改属性的值
4、static关键字有什么特点,使用的时候有什么注意事项?
特点:
1.随着类的加载而加载
2.优先于对象而存在
3.可以被所有对象共享
4.可以用类名来访问
注意事项
1.在静态方法中不许出现this关键字(因为this代表
的是一个具体的对象,而在静态方法加载到内存时,还
没有具体的对象)
2.静态方法只能访问静态的成员
5、public static void main(String[] args) {
Person p = new Person();
},这段代码在内存中做了哪些事情?
1.加载Person.class文件进入内存
2.在栈中创建一个Person类的变量p
3.在堆中创建Person对象,并对成员变量进行默认的初始化
4.成员变量的显式初始化
5.构造函数进栈,对成员变量进行赋值,构造函数弹栈
6.把对象的内存地址给变量p
6、静态变量和成员变量的区别是什么?
1.所属不同
1.静态变量是属于类的,又叫类变量
2.成员变量是属于对象的,又叫对象变量
2.内存位置不同
1.静态变量是在方法区的静态区
2.成员变量是在堆内存中的
3.内存出现的时间不同
1.静态变量是随着类的加载而加载的,随着类的消失就消失
2.成员变量是随着对象的创建而产生,随着对象的消失而消失
4.调用不同
1.静态变量可以有类名调用,也可以用对象调用;
2.成员变量只能用对象调用
7、如何使用JDK提供的帮助文档?
javadoc -d 存储帮助文档的路径 [options] java文件的全名(包括后缀)
8、通过Math类如何获取1-100之间的随机数?
(int)(Math.random()*100)+1
9、需求:定义一个长方形类,定义求周长和面积的方法,然后定义一个测试类进行测试。
public class Rectangle {
private int length;//长
private int width;//宽
//无参构造函数
public Rectangle() {
}
//有参构造函数
public Rectangle(int length, int width) {
this.length = length;
this.width = width;
}
//获得周长
public int getPerimeter() {
return (this.length+this.width)*2;
}
//获得面积
public int getArea() {
return this.length*this.width;
}
//get/set方法
public int getLength() {
return length;
}
public void setLength(int length) {
this.length = length;
}
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
public static void main(String[] args) {
Rectangle rectangle=new Rectangle(12,15);//创建长方形对象
int perimeter=rectangle.getLength();//获得周长
int area=rectangle.getArea();//获得面积
System.out.println("周长:"+perimeter+",面积:"+area);//输出结果
System.out.println("************************");//分界符
Rectangle rectangle1=new Rectangle(12,15);//创建长方形对象
rectangle1.setLength(20);//设置长
rectangle1.setWidth(30);//设置宽
int perimeter1=rectangle1.getLength();//获得周长
int area1=rectangle1.getArea();//获得面积
System.out.println("周长:"+perimeter1+",面积:"+area1);//输出结果
}
}
10、根据需求,完成如下代码(按照标准格式写),并在测试类中进行测试。
需求一:
员工类Employee
属性:姓名name,工号id,工资salary
行为:显示所有成员信息的方法show()
public class Employee {
private String name;//姓名
private String id;//工号
private float salary;//工资
//显示所有成员信息的方法
public void show() {
System.out.println("name=" + name + ", id=" + id + ", salary=" + salary);
}
public Employee() {
}
public Employee(String name, String id, float salary) {
this.name = name;
this.id = id;
this.salary = salary;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public float getSalary() {
return salary;
}
public void setSalary(float salary) {
this.salary = salary;
}
public static void main(String[] args) {
Employee employee=new Employee("gcno93","1234",500);//创建员工对象
employee.show();//显示员工信息
System.out.println("*****************");
Employee employee1=new Employee();//创建员工对象
employee.setName("hello");//设置姓名
employee.setId("545646");//设置工号
employee.setSalary(1000);//设置工资
employee1.show();//显示员工信息
}
}
需求二:
动物类Animal
属性:姓名name,年龄age
行为:吃饭eat,睡觉sleep
public class Animal {
private String name;//name
private int age;//age
//无参构造方法
public Animal() {
}
//有参构造方法
public Animal(String name, int age) {
this.name = name;
this.age = age;
}
//吃饭
public void eat() {
System.out.println(this.name+"吃饭");
}
//睡觉
public void sleep() {
System.out.println(this.name+"睡觉");
}
//get/set方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public static void main(String[] args) {
Animal animal=new Animal("大狗",5);//创建动物类
animal.eat();//吃饭
animal.sleep();//睡觉
System.out.println("*****************************");
Animal animal1=new Animal();//创建动物类
animal1.setName("小狗");
animal.setAge(5);
animal1.eat();//吃饭
animal1.sleep();//睡觉
}
}
需求三:
人类Person
属性:姓名name,年龄age,性别gender
行为:学习study,睡觉sleep
public class Person {
private String name;//姓名
private int age;//年龄
private char gender;//性别
//无参构造函数
public Person() {
}
//有参构造函数
public Person(String name, int age, char gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
//学习
public void study() {
System.out.println(this.name+"学习");
}
//睡觉
public void sleep() {
System.out.println(this.name+"睡觉");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public char getGender() {
return gender;
}
public void setGender(char gender) {
this.gender = gender;
}
public static void main(String[] args) {
Person person=new Person("lss",15,'男');//创建Person对象
person.study();//学习
person.sleep();//睡觉
System.out.println("**********************");
Person person2=new Person();//创建Person对象
person2.setName("sada");//设置名字
person2.setAge(20);//设置年龄
person2.setGender('女');//设置性别
person2.study();//学习
person2.sleep();//睡觉
}
}
11、自学Random类,然后通过Random类来实现猜数字的小游戏。
import java.util.Random;
import java.util.Scanner;
public class MyRandom {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);//创建键盘录入对象
System.out.println("请输入你猜测的数字");//提示
int mygussce=sc.nextInt();//录入猜测数据
int gussce=new Random().nextInt(100)+1;//产生答案
int count=0;//猜测的次数
while(true){//循环猜测,直到猜对为止
count++;//猜测的次数添加
if(gussce>mygussce){//如果小了
System.out.println("你猜小了,请重新输入:");
mygussce=sc.nextInt();//重新录入猜测数据
}else if(gussce<mygussce){//如果大了
System.out.println("你猜大了,请重新输入:");
mygussce=sc.nextInt();//重新录入猜测数据
}else{//猜对了
System.out.println("你猜了"+count+"次,终于猜对了,答案是:"+gussce);
break;
}
}
}
} |
|