如何从我的静态方法将值传递到我的对象数组
How to pass values to my object array from my static method
我有 3 个 classes 一个 EyMain,它是我的主要 class,我在其中读取了一个 "n" 值 > 100 ,它创建了我的对象编号 arrays.Then 我调用 writeUSB() 方法 填充对象数组。
public class EyMain {
public static void main(String[] args) {
int n;
do {
System.out.println("Give an integer value > 100 : ");
n = scannerUserInput.getInteger();
} while (n < 101);
ekpaideytikoYliko usb[] = new ekpaideytikoYliko[n];
eYMethods.writeUSB(usb);
eYMethods.showDocs(usb);
}
}
我的另一个 class 是 eYMethods,我有 2 个静态方法 writeUSB 我想 return 已存储的最后一个元素的指针在我的数组中,因为我想检查我的 memorySpace > 8gb 我想将它从数组中删除并更新数组的最后一个元素 和 showDocs 我只想打印用户键入的对象数组中的元素,并只打印带有 .doc 或 .docx .
的文件扩展名
package eymain;
public class eYMethods {
static double writeUSB(ekpaideytikoYliko usb[]) {
for(int i = 0; i < usb.length; i++) {
System.out.println("Give fileName : ");
usb[i].setFileName(scannerUserInput.getString());
System.out.println("Give minutes : ");
usb[i].setMinutes(scannerUserInput.getDouble());
System.out.println("Give memorySpace");
usb[i].setMemorySpace(scannerUserInput.getDouble());
}
return 0;
}
static void showDocs(ekpaideytikoYliko usb[]) {
for(int i =0; i < usb.length; i++) {
System.out.println("fileName : " + usb[i].getFileName());
System.out.println("minutes : " + usb[i].getMinutes());
System.out.println("memorySpace : " + usb[i].getMemorySpace());
}
}}
最后一个 class 是我的 ekapideytikoYliko,我有我的私有变量、get 和 set、我的构造函数和一个字符串方法 getFileType,我想从文件名中获取它的扩展名。示例(.doc、.docx、.mp4)。
package eymain;
public class ekpaideytikoYliko {
private String fileName;
private double minutes;
private double memorySpace;
ekpaideytikoYliko(String fileName, double minutes, double memorySpace) {
this.fileName = fileName;
this.minutes = minutes;
this.memorySpace = memorySpace;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public double getMinutes() {
return minutes;
}
public void setMinutes(double minutes) {
this.minutes = minutes;
}
public double getMemorySpace() {
return memorySpace;
}
public void setMemorySpace(double memorySpace) {
this.memorySpace = memorySpace;
}
String getfileType(ekpaideytikoYliko usb[]) {
int name = fileName.lastIndexOf(".");
if (name == -1) {
return "";
}
return fileName.substring(name);
}}
我的 scannerUserInput 文件:
package eymain;
import java.util.Scanner;
public class scannerUserInput {
static int getInteger(){
Scanner ob = new Scanner(System.in);
try{
int i = ob.nextInt();
return i;
}
catch(Exception e){
return -1;
}
}
static byte getByte(){
Scanner ob = new Scanner(System.in);
try{
byte b = ob.nextByte();
return b;
}
catch(Exception e){
return -1;
}
}
static short getShort(){
Scanner ob = new Scanner(System.in);
try{
short s = ob.nextShort();
return s;
}
catch(Exception e){
return -1;
}
}
static long getLongInteger(){
Scanner ob = new Scanner(System.in);
try{
long l = ob.nextLong();
return l;
}
catch(Exception e){
return -1;
}
}
static float getFloat(){
Scanner ob = new Scanner(System.in);
try{
float f = ob.nextFloat();
return f;
}
catch(Exception e){
return -1;
}
}
static double getDouble(){
Scanner ob = new Scanner(System.in);
try{
double d = ob.nextDouble();
return d;
}
catch(Exception e){
return -1;
}
}
static String getString(){
Scanner ob = new Scanner(System.in);
try{
String s = ob.nextLine();
return s;
}
catch(Exception e){
return "";
}
}
static char getChar(){
Scanner ob = new Scanner(System.in);
try{
char ch = ob.next().charAt(0);
return ch;
}
catch(Exception e){
return ' ';
}
}
}
当我在 writeUSB 方法中键入来自扫描仪的数据时,我在第一次键入时遇到错误。
在 java 中,当您创建一个对象数组时,您的情况是:
ekpaideytikoYliko usb[] = new ekpaideytikoYliko[n];
Java 只需这样做
// Lets say n = 5 for easier demonstration
{null, null, null, null, null}
来源:Initial Values of Variables
For all reference types (§4.3), the default value is null.
现在,当您在 eYMethods
中尝试调用方法时,它只是 return 空指针,因为该元素为空。要解决这个问题,您需要创建一个对象并将该对象存储在数组中。像这样:
for (int i = 0; i < usb.length; i++) {
System.out.println("Give fileName : ");
String fileName = scannerUserInput.getString();
System.out.println("Give minutes : ");
double minutes = scannerUserInput.getDouble();
System.out.println("Give memorySpace");
double memorySpace = scannerUserInput.getDouble();
ekpaideytikoYliko tempEkpaideytikoYliko = new ekpaideytikoYliko(fileName, minutes, memorySpace);
usb[i] = tempEkpaideytikoYliko;
}
现在 java 将创建 Class ekpaideytikoYliko
的对象并将其存储在数组中。
我有 3 个 classes 一个 EyMain,它是我的主要 class,我在其中读取了一个 "n" 值 > 100 ,它创建了我的对象编号 arrays.Then 我调用 writeUSB() 方法 填充对象数组。
public class EyMain {
public static void main(String[] args) {
int n;
do {
System.out.println("Give an integer value > 100 : ");
n = scannerUserInput.getInteger();
} while (n < 101);
ekpaideytikoYliko usb[] = new ekpaideytikoYliko[n];
eYMethods.writeUSB(usb);
eYMethods.showDocs(usb);
}
}
我的另一个 class 是 eYMethods,我有 2 个静态方法 writeUSB 我想 return 已存储的最后一个元素的指针在我的数组中,因为我想检查我的 memorySpace > 8gb 我想将它从数组中删除并更新数组的最后一个元素 和 showDocs 我只想打印用户键入的对象数组中的元素,并只打印带有 .doc 或 .docx .
的文件扩展名package eymain;
public class eYMethods {
static double writeUSB(ekpaideytikoYliko usb[]) {
for(int i = 0; i < usb.length; i++) {
System.out.println("Give fileName : ");
usb[i].setFileName(scannerUserInput.getString());
System.out.println("Give minutes : ");
usb[i].setMinutes(scannerUserInput.getDouble());
System.out.println("Give memorySpace");
usb[i].setMemorySpace(scannerUserInput.getDouble());
}
return 0;
}
static void showDocs(ekpaideytikoYliko usb[]) {
for(int i =0; i < usb.length; i++) {
System.out.println("fileName : " + usb[i].getFileName());
System.out.println("minutes : " + usb[i].getMinutes());
System.out.println("memorySpace : " + usb[i].getMemorySpace());
}
}}
最后一个 class 是我的 ekapideytikoYliko,我有我的私有变量、get 和 set、我的构造函数和一个字符串方法 getFileType,我想从文件名中获取它的扩展名。示例(.doc、.docx、.mp4)。
package eymain;
public class ekpaideytikoYliko {
private String fileName;
private double minutes;
private double memorySpace;
ekpaideytikoYliko(String fileName, double minutes, double memorySpace) {
this.fileName = fileName;
this.minutes = minutes;
this.memorySpace = memorySpace;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public double getMinutes() {
return minutes;
}
public void setMinutes(double minutes) {
this.minutes = minutes;
}
public double getMemorySpace() {
return memorySpace;
}
public void setMemorySpace(double memorySpace) {
this.memorySpace = memorySpace;
}
String getfileType(ekpaideytikoYliko usb[]) {
int name = fileName.lastIndexOf(".");
if (name == -1) {
return "";
}
return fileName.substring(name);
}}
我的 scannerUserInput 文件:
package eymain;
import java.util.Scanner;
public class scannerUserInput {
static int getInteger(){
Scanner ob = new Scanner(System.in);
try{
int i = ob.nextInt();
return i;
}
catch(Exception e){
return -1;
}
}
static byte getByte(){
Scanner ob = new Scanner(System.in);
try{
byte b = ob.nextByte();
return b;
}
catch(Exception e){
return -1;
}
}
static short getShort(){
Scanner ob = new Scanner(System.in);
try{
short s = ob.nextShort();
return s;
}
catch(Exception e){
return -1;
}
}
static long getLongInteger(){
Scanner ob = new Scanner(System.in);
try{
long l = ob.nextLong();
return l;
}
catch(Exception e){
return -1;
}
}
static float getFloat(){
Scanner ob = new Scanner(System.in);
try{
float f = ob.nextFloat();
return f;
}
catch(Exception e){
return -1;
}
}
static double getDouble(){
Scanner ob = new Scanner(System.in);
try{
double d = ob.nextDouble();
return d;
}
catch(Exception e){
return -1;
}
}
static String getString(){
Scanner ob = new Scanner(System.in);
try{
String s = ob.nextLine();
return s;
}
catch(Exception e){
return "";
}
}
static char getChar(){
Scanner ob = new Scanner(System.in);
try{
char ch = ob.next().charAt(0);
return ch;
}
catch(Exception e){
return ' ';
}
}
}
当我在 writeUSB 方法中键入来自扫描仪的数据时,我在第一次键入时遇到错误。
在 java 中,当您创建一个对象数组时,您的情况是:
ekpaideytikoYliko usb[] = new ekpaideytikoYliko[n];
Java 只需这样做
// Lets say n = 5 for easier demonstration
{null, null, null, null, null}
来源:Initial Values of Variables
For all reference types (§4.3), the default value is null.
现在,当您在 eYMethods
中尝试调用方法时,它只是 return 空指针,因为该元素为空。要解决这个问题,您需要创建一个对象并将该对象存储在数组中。像这样:
for (int i = 0; i < usb.length; i++) {
System.out.println("Give fileName : ");
String fileName = scannerUserInput.getString();
System.out.println("Give minutes : ");
double minutes = scannerUserInput.getDouble();
System.out.println("Give memorySpace");
double memorySpace = scannerUserInput.getDouble();
ekpaideytikoYliko tempEkpaideytikoYliko = new ekpaideytikoYliko(fileName, minutes, memorySpace);
usb[i] = tempEkpaideytikoYliko;
}
现在 java 将创建 Class ekpaideytikoYliko
的对象并将其存储在数组中。