问题标签 [non-static]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 静态同步方法与非静态同步方法
我有一堂课
我有 2 个对象Foo.get()
并f.getMore()
在 2 个不同的线程 t1 和 t2 中运行。我有一个问题,当线程 t1 在类上获得锁定时,线程 t2 是否可以访问方法 getMore,或者由于类对象被 t1 锁定,是否会阻止 t2 获得对该方法的访问和锁定。
java - 静态成员和非静态成员是分开的吗?
所以我得到了这个类:
LoadModel 方法会影响任何 Model 对象吗?LoadModel 方法还没有完成!
java - 不能从静态上下文中引用非静态方法
可能重复:
在 Java 中的静态方法中调用非静态方法
当我尝试从我的主函数调用涉及已定义对象的方法时,我遇到了“无法从静态上下文引用非静态方法”错误。
我有三个类:Person 类、Book 类和包含主方法的第三类。
现在,我被要求在 main() 中创建四个 Person 实例,并定义一个方法“doesAnybodyWantIt(Book b)”,询问这四个人是否想要这本书。它看起来像这样:doesAnybodyWantIt(Book b){ me.doIwantIt(b); lisa.doIwantIt(b).. with the four person-objects).
所以我担心,javac 不知道四个 Person-objects 存在并引发错误。我知道我可以改为将方法编写为 doesAnybodyWantIt(Book b, Person a, ... ),但这不是我被问到的。
所以我的问题是:有没有办法在不将 Persons 作为参数传递给doesAnybodyWantIt
-method 的情况下绕过这个问题?我试图Person me = new Person(..)
在没有运气的情况下包含在构造函数方法中。
在这种类型的设置中,我想对我知道我将定义的对象做特定的事情,我如何回避错误?
我不确定我是否应该包含原始源代码;所有的方法和参数都被赋予了挪威名字,所以我担心它不会很可读。
非常感谢大家!马吕斯
感谢您的回复!你当然是对的,我必须在这个混乱的问题中包含一些代码。
一个人有一个名字和感兴趣的领域,一本书有一个类别。作业说我应该创建一个方法 vilNoenHaBoka (= doesAnybodyWantTheBook) 循环遍历 main 中创建的四个特定 Person-objects,并询问他们每个人是否想要这本书。它还指出该方法应该看起来像 public void vilNoenHaBoka(Bok b)。现在,我对提出这个明确与作业相关的问题感到非常难过,如果这不合适,请告诉我。然而,我只是想知道解决这个问题的好方法是什么——例如,我应该将 Person-objects 传递给 vilNoenHaBoka() 吗?
再次感谢!
java - (Another) "non-static method cannot be referenced from a static context" issue
ERROR: non-static method cannot be referenced from a static context.
In my case the method is called readFile().
Hi. I'm experiencing the same error that countless novice programmers have before, but despite reading about it for hours on end, I can't work out how to apply that knowledge in my situation.
I think the code may need to be restructured so I am including the full text of the class.
I would prefer to house the main() method in small Main class, but have placed it in the same class here for simplicity. I get the same error no matter where I put it.
The readFile() method could easily be placed within the main() method, but I’d prefer to learn how to create small modular methods like this and call them from a main() method. Originally closeFile() was a separate method too.
The program is supposed to:
- open a .dat file
- read in from the file data regarding examination results
- perform calculations on the information
- output the results of the calculations
Each line of the file is information about an individual student.
A single consists of three examination papers.
Most calculations regard individual students.
But some calculations regard the entire collection of students (ie their class).
NB: where the word “class” is used in the code, it refers to academic class of the students, not class in the sense of OO programming.
I have tried various ways to solve problem.
Current approach is to house data concerning a single student examination in an instance of the class “Exam”.
This corresponds to a single line of the input file, plus subsequent calculations concerning other attributes of that instance only.
These attributes are populated with values during the while loop of readFile().
When the while loop ends, the three calculations that concern the entire collection of Exams (ie the entire academic class) are called.
A secondary question is:
Under the comment “Declare Attributes”, I’ve separated the attributes of the class into two subgroups:
Those that I think should be defined as class variables (with keyword static).
Those that I think should be defined as instance variables.
Could you guide me on whether I should add keyword static to those in first group.
A related question is:
Should the methods that perform calculations using the entire collection of instances be declared as static / class methods too?
When I tried that I then got similar errors when these tried to call instance methods.
Thanks.
PS: Regarding this forum:
I have enclosed the code with code blocks, but the Java syntax is not highlighted.
Perhaps it will change after I submit the post.
But if not I'd be happy to reformat it if someone can tell me how.
PPS: this is a homework assignment.
I have created all the code below myself.
The "homework" tag is obsolete, so I didn't use it.
Input File Name: "results.dat"
Input File Path: "C:/Users/ADMIN/Desktop/A1P3E1 Files/results.dat"
Input File Contents (randomly generated data):
Java File Name: "Exam.java"
Java Package Name: "a1p3e1"
Java Project Name: "A1P3E1"
Java File Contents:
java - 将数组从主类传递到函数之间的冲突,但也想使用我的“getter”方法中的返回值
在我的主类中,我有一个静态方法,我将数组传递到其中。这是一个静态方法,因为如果我想从主类体传递一些东西给这个方法,它必须是静态的。在一个单独的类中,我有一系列 getter 和 setter(必须是非静态的)。
如何传递我的静态数组并使用非静态 getter 和 setter?
编辑-在 arraySearch 方法中...我无法传入 Person 数组并访问 Person 类中的 getter
公共类主要{
}
公共类人{
}
java - 将扫描仪从静态传递到非静态并返回浮点 java
我正在做一个项目,我需要将扫描仪从静态主方法传递到扫描仪读取的文本文件中的非静态方法,并让它返回一个浮点数。到目前为止,我有:
然后在我的计算方法中,它的声明就是public float calculate(Scanner s){
我知道类似的问题已经被问过很多次,但我就是不明白。让我失望的是没有像节点一样创建新对象。谢谢你。
forms - 静态和非静态方法或全局类对象
我正在用 VS2012 C++ 制作一个 Windows 窗体应用程序。仅以情况为例,实际项目更复杂:我有一个包含 TextBox、Button 和 Timer 的表单。按钮只是触发计时器。定时器只是调用增加一些变量的函数。我需要在 TextBox 中显示递增的函数变量。
在 Form1.h 我添加代码:
在这样的 My_app.cpp 代码中:
函数 Timer_Func() 在“resource.h”中指定,如下所示:
即,我试图通过将 Timer_Func() 的内部变量 I 传递给 Form1 公共方法 Set_Text() 来显示其当前状态。所以。这里的错误是 Set_Text() 不是静态方法。我试图将其设为静态,但收到错误“С2227:“->Text”左侧的操作数不是指向类、结构或联合的指针。” 如何正确处理?在那种情况下,静态方法正在尝试实现非静态方法,对吗?
或另一种方式:制作 Form1 的实例 - 而不是
插入代码
并使用 Set_Text 作为类实例 My_form 的非静态方法。但 My_form 仅在 main() 中可用!我无法在其他任何地方制作 My_form。有没有办法让它全球化或什么?
可能有其他方法可以解决这个问题吗?
请帮忙!我已经搜索了几个论坛的答案,但没有找到答案。更准确地说,他们都不适合。PS对不起我的英语不好!^_^
c++ - 访问类外的非静态数据成员
是否可以访问其类之外的非静态数据成员?假设您有如下示例。我知道作为示例没有多大意义,但我只想了解如何访问非静态数据成员。如果编译以下内容,则会产生错误:
//通道
//C.cpp
c# - 将非静态类声明为静态
我有一个名为的静态类A
:
还有另一个名为 的类B
,它不是静态的:
之后,我将非静态类声明B
为静态:
A
(静态类)和b
(声明为静态类的非静态类)有什么区别?
java - 无法通过反射调用非静态方法(Java)
我在通过反射调用非静态方法时遇到问题。我的代码如下。当我尝试执行“ClassnameRemoved.printMessageToLogger(Level.INFO, "Test");”时,我得到“在 Logger 类中找不到方法 'log'。这是一个普通的 Java 类,因此您可能正在使用修改过的/ outdata Java 版本。”。提前致谢!