java - 如何从包含构造函数的类中调用方法?
问题描述
我最近了解到调用包含构造函数的类意味着它只会调用构造函数,但是如果我想从该类中调用方法Main
怎么办?
假设我有一个看起来像这样的课程
public class Student {
private String lastname, firstname, course;
private int[] grades;
static int total;
public Student(String lastname, String firstname, String course, int[] grades) {
this.lastname = lastname;
this.firstname = firstname;
this.course = course;
this.grades = grades;
}
public boolean hasFailingGrade() {
//statements
}
return failed;
}
public void showDetails() {
//statements
}
}
在 中Main
,我想创建一个实例Student
并调用showDetails()
,但是,该实例仅引用构造函数。我如何调用该方法Student
?我四处搜索,但只找到有关如何调用构造函数的文章。
这是我的Main
班级的样子
import java.util.Scanner;
import java.util.ArrayList;
import java.io.*;
public class MainApp {
public static void main(String args[]) throws FileNotFoundException {
String firstname, lastname, course;
int[] grades = new int[5];
ArrayList<Student> list = new ArrayList<Student>();
Scanner in = new Scanner(new File("person.txt"));
Scanner in2 = new Scanner(new File("person.txt"));
while(in.hasNext()) {
lastname = in.nextLine();
firstname = in.nextLine();
course = in.nextLine();
for (int i = 0; i < 4; i++)
grades[i] = in2.nextInt();
list.add(new Student(lastname, firstname, course, grades));
}
Student studentClass = new Student();
Student.showDetails();
}
}
解决方案
我认为您对实例化对象的含义略有误解。当您调用 new Student() 时,您正在实例化 Student 类的一个新实例。此实例化过程涉及对构造函数的初始调用。将构造函数方法视为一个函数,它设置您的类按预期工作所需的一切。
但是,一旦您实例化了 Student 的实例,您就可以访问该实例中可用的所有公共方法和字段。在您的示例中,您的 Student 类有一个名为的公共方法showDetails()
。
所以你可以在 main 中写这样的东西:
Student student = new Student("Smith", "John", "English", [95, 88, 73]);
student.showDetails();
通过创建类的实例,您可以访问该类的所有公共方法。
希望这能消除你的困惑!
推荐阅读
- python - Flask + uwsgi + keras 错误“该死!工人1(pid:5240)死亡,被信号11杀死:(尝试重生……)”
- python-3.x - 错误:AttributeError:“列表”对象没有属性“项目”?。我正在使用 python 3.6
- python - “SSHClient”对象没有属性“Popen”
- mysql - 对于连续读写的单个表,Galera Active-Active 有哪些风险?
- laravel - file_put_contents(xxx.pdf):无法打开流:没有这样的文件或目录”
- java - Java 中的 JavaScript console.count() 等价物是什么?
- hibernate - Hibernate 非主键映射问题
- performance - 在 Jmeter 中为并发线程组添加启动延迟
- php - 如何过滤 php 二维数组以返回具有包含搜索查询作为通配符的名称属性的元素?
- pycharm - pycharm - 我什么时候应该在路径中使用查找(cmd-shift-f),什么时候应该在任何地方使用搜索(双班)?