Java 在哪里初始化对象?
我正在尝试创建一个计算器应用程序,它存储按钮被按下的频率,然后用这些信息执行各种任务。我认为最好创建一个单独的java文件,其中包含所有要引用的对象及其信息。调用以前在主活动中设置的对象时遇到一些问题。我知道我必须初始化对象,但我不知道在哪里初始化,也不知道是否可以在一个类中创建多个对象 公共类价格对象{Java 在哪里初始化对象?,java,android,oop,Java,Android,Oop,我正在尝试创建一个计算器应用程序,它存储按钮被按下的频率,然后用这些信息执行各种任务。我认为最好创建一个单独的java文件,其中包含所有要引用的对象及其信息。调用以前在主活动中设置的对象时遇到一些问题。我知道我必须初始化对象,但我不知道在哪里初始化,也不知道是否可以在一个类中创建多个对象 公共类价格对象{ public class valuesA { public int freqDayA = 0; public int freqWeekA = 0; public int
public class valuesA {
public int freqDayA = 0;
public int freqWeekA = 0;
public int totalDayA = freqDayA*2;
public int totalWeekA = freqWeekA*2;
}
public class valuesB {
int freqDayB = 0;
int freqWeekB = 0;
int totalDayB = freqDayB*3;
int totalWeekB = freqWeekB*3;
}
public class valuesC {
int freqDayC = 0;
int freqWeekC = 0;
int totalDayC = freqDayC*4;
int totalWeekC = freqWeekC*4;
}
public class valuesD {
int freqDayD = 0;
int freqWeekD = 0;
int totalDayD = freqDayD*5;
int totalWeekD = freqWeekD*5;
}
public class valuesCustom {
int freqDayCustom = 0;
int freqWeekCustom = 0;
int totalDayCustom = freqDayCustom*40;
int totalWeekCustom = freqWeekCustom*40;
}
}
这段代码好吗?还是我应该把它全部保存在main活动中?
谢谢 在这里,您已经在类中创建了一个类,这不是编写OOPS代码的最佳方式。最好的方法是在一个类中创建两个类,通过创建不同的方法来放置所有的计算器逻辑,如
public class Calculator{
public void Sum(){
// Enter the logic
}
public void diff(){
// Enter the login
}
}
现在创建一个主类,在其中创建calculator类的对象,并从该对象访问不同的方法,如Sum和diff
public class mainClass(){
public static void main(string args[]){
Calculator obj = new Calculator(); // Object creation
obj.Sum(); // Accessing the sum method
}
}
这样你就可以做到。这不是完整的代码,但这是oops中所有人都遵循的方法。在这里,您在类中创建了一个类,这不是编写oops代码的最佳方法。最好的方法是在一个类中创建两个类,通过创建不同的方法来放置所有的计算器逻辑,如
public class Calculator{
public void Sum(){
// Enter the logic
}
public void diff(){
// Enter the login
}
}
现在创建一个主类,在其中创建calculator类的对象,并从该对象访问不同的方法,如Sum和diff
public class mainClass(){
public static void main(string args[]){
Calculator obj = new Calculator(); // Object creation
obj.Sum(); // Accessing the sum method
}
}
这样你就可以做到。这不是一个完整的代码,但这是oops中所有人都遵循的方法,需要研究的东西可能是。其思想是,业务逻辑/对象是模型,实际视图是xml布局文件,“控制”视图的控制器是活动类。看起来,通过使用一些面向对象的设计,您可以稍微清理一下类。特别是你的价值观类。与其为每种值创建一个单独的类,为什么不创建一些可以像这样重用的通用类呢
public class Values {
public int freqDay = 0;
public int freqWeek = 0;
public int totalDay;
public int getTotalDay(){
totalDay = freqDay*2;
return totalDay;
}
public int totalWeek;
public int getTotalWeek(){
totalWeek = freqWeek*2;
return totalWeek;
}
}
这样,如果您希望能够存储多组值,可以将它们保存在如下列表中:
List<Values> myValues = new ArrayList<Values>();
myValues.add(new Values());
List myValues=new ArrayList();
添加(新值());
这些都不是完美的解决方案/代码,但它只是让您更多地思考对象/动态和可重用代码的一点小东西。希望这能给你一个开始寻找的地方 需要研究的可能是。其思想是,业务逻辑/对象是模型,实际视图是xml布局文件,“控制”视图的控制器是活动类。看起来,通过使用一些面向对象的设计,您可以稍微清理一下类。特别是你的价值观类。与其为每种值创建一个单独的类,为什么不创建一些可以像这样重用的通用类呢
public class Values {
public int freqDay = 0;
public int freqWeek = 0;
public int totalDay;
public int getTotalDay(){
totalDay = freqDay*2;
return totalDay;
}
public int totalWeek;
public int getTotalWeek(){
totalWeek = freqWeek*2;
return totalWeek;
}
}
这样,如果您希望能够存储多组值,可以将它们保存在如下列表中:
List<Values> myValues = new ArrayList<Values>();
myValues.add(new Values());
List myValues=new ArrayList();
添加(新值());
这些都不是完美的解决方案/代码,但它只是让您更多地思考对象/动态和可重用代码的一点小东西。希望这能给你一个开始寻找的地方 这就是为什么你有构造函数:@zakir是对的。写一个类值(类以大写字母开头),并用新的或者更适合您的场景的工厂实例化它,以满足您的需要:顺便说一句,没有人需要否决您。你是新手,正在努力学习。不断地问问题,做研究,你就会达到目的您对
totalDayA
等的声明是无用的:将字段的值设置为freqDayA*2
并不意味着其值始终是freqDayA
的两倍:它只是将初始值设置为freqDayA
初始值的两倍,即2*0
。如果您更改freqDayA
,totalDayA
也不会更改。这就是为什么您有构造函数:@zakir是正确的。写一个类值(类以大写字母开头),并用新的或者更适合您的场景的工厂实例化它,以满足您的需要:顺便说一句,没有人需要否决您。你是新手,正在努力学习。不断地问问题,做研究,你就会达到目的您对totalDayA
等的声明是无用的:将字段的值设置为freqDayA*2
并不意味着其值始终是freqDayA
的两倍:它只是将初始值设置为freqDayA
初始值的两倍,即2*0
。如果更改freqDayA
,totalDayA
也不会更改。