Java基础知识面向对象作业—02
1、构造方法的格式是什么?有哪些注意事项?
公开的构造,外界可以创建对象;’
public className(){
}
私有的构造,不可以创建对象
private className(){
}
注意事项:构造方法在一次创建对象时只能加载一次;如果没有手动构造函数,虚拟机会自动生产一个无参无返回值的构造;
一旦手动构造了一个构造函数,则系统不会再提供任何的构造函数,建议在构造时顺带写一个空参构造;
2、构造方法可以重载吗? 里边可以有return语句吗?
构造方法可以重载,可以有不同参数列表的构造初始化函数,用来产生不同的初始化值;
可以有return 语句,但是不可以写真正的返回值,因为构造函数本身没有规定返回值类型;
3、给成员变量赋值有几种方式?有什么区别?
1.默认赋值;由虚拟机自动赋值
2.显示赋值;由用户手动赋值
3.构造函数赋值;由用户手动赋值
这三者对相同的变量赋值时会逐级覆盖;
4、public static void main(String[] args) {
Person p = new Person();
},这段代码在内存中做了哪些事情?
1.首先main函数进栈;
2.Person类的字节码文件加载进入方法区;
3.Person()构造方法加载进入方法区;
4.在栈中产生一个Person 类型的变量p;
5.在堆中产生了一个实例对象,p变量指向该实例对象;
5、需求:定义一个长方形类,定义求周长和面积的方法,然后定义一个测试类进行测试。
import java.util.Scanner;
class Rect {
private static Scanner in = new Scanner(System.in);
public static void main(String[] args) {
//主函数入口
System.out.print("输入长方形的长:");
int longth = in.nextInt();
System.out.print("请输入长方形的宽:");
int width = in.nextInt();
Calc c = new Calc(longth,width);
int AllArea = c.calcArea();
int Alllongth = c.calcLongth();
System.out.println("周长为:"+Alllongth+",,面积为:"+AllArea);
}
}
class Calc{
static int longth;
static int width;
public Calc(int longth,int width){
this.longth = longth;
this.width = width;
}
public static int calcArea(){
int area = longth * width;
return area;
}
public static int calcLongth(){
int Alllongth = 2*(longth + width);
return Alllongth;
}
}
6、根据需求,完成如下代码(按照标准格式写:私有属性、空参有参构造、getset方法),并在测试类中进行测试。
需求一:
员工类Employee
属性:姓名name,工号id,工资salary
行为:显示所有成员信息的方法show