java中构造方法有哪些形式_java构造方法练习

本文探讨了Java构造方法的作用、特点和注意事项。构造方法用于初始化对象,无返回值,可按参数区分。建议在类中定义无参构造方法。此外,介绍了成员变量赋值的不同方式,包括直接赋值、构造方法、对象赋值和setter方法。通过Employee类的实例展示了构造方法、getter/setter以及显示信息的方法。最后讲解了类的成员变量初始化过程、static关键字、静态变量的特点和应用场景,以及main方法的修饰符和参数解析。
摘要由CSDN通过智能技术生成

1:构造方法的作用是什么?构造方法的特点是什么?构造方法的注意事项是什么?

运用构造方法可以对属性(成员变量初始化);

书写:构造方法需要与其所在类有完全相同的名字,

无返回值

无返回值类型

如:

class Example{

public Example(){

}

}

在初始化对象时,构造方法系统自动调用,构造方法无法手动调用

构造方法可以同名,区分看参数个数,类型,顺序,

初始化时后面的括号有无参数可判断出,系统自动调用了哪个构造方法

类中最好定义无参构造方法,再根据需求添加是否需要定义有参构造方法

注意事项:

1,如没写任何构造方法,系统会提供一个无参构造方法

2,而写了有参的构造方法后,系统不会再提供任何构造方法,所以需把无参构造方法加上

2:给成员变量赋值有几种方式?

1,成员变量直接赋值:

int num = 1;

2,无参构造方法对成员变量初始化赋值:

public Example(){

num = 2;

}

3,有参构造方法对成员变量初始化赋值:

public Example(int num){

this.num = num;

}

4,对象赋值

example.num = 3;

5,private私有化后由set 方法修改赋值

public void setNum(int num){

this.num = num;

}

3:标准的代码编写及测试:

定义一个员工类Employee

* 自己分析出几个成员,然后给出成员变量

* 姓名name,工号id,工资salary

* 构造方法,

* 空参和有参的

* getXxx()setXxx()方法,

* 以及一个显示所有成员信息的方法。并测试

public class Employee {

//成员变量

private String name;

private int id;

private int salary;

//无参构造方法,初始化成员变量

public Employee() {

}

//有参构造方法,初始化成员变量

public Employee(String name,int id, int salary) {

this.name = name;

this.id = id;

this.salary = salary;

}

//set get

public void setName(String name) {

this.name = name;

}

public void setId(int id) {

this.id = id;

}

public void setSalary(int salary) {

this.salary = salary;

}

public String getName() {

return name;

}

public int getId() {

return id;

}

public int getSalary() {

return salary;

}

//成员方法

public void fun() {

System.out.println(name + "--" +id + "--" + salary);

}

}

测试代码

public class EmployeeTest {

public static void main(String[] args) {

Employee em = new Employee("李白",14,10000);

em.setId(5);

em.getId();

System.out.println(em.getId());

em.fun();

}

}

4:一个类的成员变量初始化过程

Student s = new Student();

对象初始化,在堆内存中创建一片存储空间,

ad80f573212480339b3a7ff88e1bec6f.png

静态变量

5:static关键字是什么?有什么特点?什么时候用呢?

静态变量因为是在对象还没有创建时就已经随着类加载到方法区的静态区,

所以调用它最好不使用对象(虽然可以),使用类名调用

静态变量特点:

静态变量随着类的加载而加载到方法区的静态区,

先于对象的创建

使用含有此静态变量创建的类来初始化的对象,可以在静态区共享此静态变量,节省内存空间

可以用类名调用

应用场景:如饮水机相对于办公室里的人,是静态变量可以共享

静态变量与成员变量区别(判断区别可从生命周期,位置,内存,初始值,调用方式等方面考虑)

1,所属不同

成员变量属于对象,位于类中方法外

静态变量属于类,前面加static,位于类中方法外

局部变量位于方法中或方法声明中,属于此方法

2,内存中存储位置不同

成员变量存储在堆内存

静态变量存储在静态区

局部变量存储在栈内存

3,生命周期不同

成员变量随着对象的创建到回收

静态变量随着类的加载到释放

局部变量随着方法的入栈到出栈

4,调用方法

成员变量只能使用对象调用

静态变量可使用类调用,对象调用可以但不推荐

局部变量就近原则,不调用

5,初始值

成员变量随着对象的初始化,如果无初始值,会有默认初始值

局部变量必须给定初始值才能使用

静态变量同成员变量一样

内存表现步骤

1,类加载到方法区

2,同时静态变量加载到方法区的静态去

3,main函数入栈

4,堆内存中创建对象

5,把地址赋值到main函数中的对象来保存

6,main函数出栈

7,gg

静态方法

同样用类名调用,

成员方法中可以有成员变量和静态变量

静态方法中只能有静态变量

6:main方法各种修饰符及参数的解释?

public jvm虚拟机调用main,需要访问权限

static jvm虚拟机调用main时,不需要创建对象

main jvm虚拟机调用时,只知道main这个词,调不到其他词,注意:main不是关键字

String[] args 原来是接收从键盘输入的值

现在用Scanner scanner = new Scanner(System.in);

String string = scanner.nextLine();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值