Java构造函数与普通函数
1.概解
tips:
1.声明函数主要用public/private,public可以在其他函数中访问。
2.public后面跟函数返回类型,void表示无返回值。
3.main函数是自动执行的构造函数,而其他函数除非被调用则不会被自动执行
运行结果:
这里看到虽然我们只是想用login函数的返回值,但是他仍然打印了“登入成功”,这说明只要调用函数,那么会把一整个函数都执行一遍
但如果不主动调用其他函数:
package java基础;
public class java_02 {
public static void main(String[] args) {
A a = new A();
System.out.println("a");
}
}
class A{
public int login(){
System.out.println("登录成功");
return 1;
}
}
则不会执行login函数,输出结果(输出的是字符串a):
4.java文件的第一个类为public公共类,java有且只有一个公共类。但是所有类里面都可以写公共函数。
2.变量调用
如果想在main中调用类A中的login函数中的b变量,这样写是会报错的,因为没有办法这样去访问:
那怎么访问呢?
1.把b添加到类A的成员变量里:
class A {
String b; // 成员变量
public int login() {
System.out.println("登录成功");
this.b = "123"; // 赋值给成员变量
return 1;
}
}
public class java_02 {
public static void main(String[] args) {
A a = new A();
a.login(); // 必须先调用 login() 初始化 b
System.out.println(a.b); // 访问成员变量 b
}
}
2. 返回多个值:
class LoginResult {
int status; //定义变量
String b;
public LoginResult(int status, String b) { //构造函数传参,在new时就会被调用
this.status = status; //为类成员变量赋值
this.b = b;
}
}
class A {
public LoginResult login() {
System.out.println("登录成功");
String b = "123";
return new LoginResult(1, b); // 向LoginResult传参然后返回封装的对象
}
}
public class java_02 {
public static void main(String[] args) {
A a = new A();
LoginResult result = a.login(); //定义对象并赋值
System.out.println(result.b); // 访问 b
}
}
3.详解
1.**构造方法(Constructor)** 和 **普通方法(Method)** 的区别:
1. 构造方法(Constructor)
- **名字必须和类名完全一致**(包括大小写)。
- **没有返回类型**(连 `void` 都不能写)。
- **用于初始化对象**(`new` 的时候自动调用)。
✅ **正确示例**:
class A {
// 构造方法,名字必须 = 类名(A)
public A() {
System.out.println("A的构造方法被调用");
}
}
调用方式:
A a = new A(); // 自动调用 A() 构造方法
2. 普通方法(Method)
✅ **正确示例**:
class A {
// 普通方法,名字可以任意(如 login)
public void login() {
System.out.println("登录方法");
}
}
调用方式:
A a = new A();
a.login(); // 手动调用 login() 方法