我正在学习Java,并编写以下简单代码:
public class Test {
private int a = b;
private final static int b = 10;
public int getA() {
return a;
}
}
public class Hello {
public static void main(String[] args) {
Test test = new Test();
System.out.println(test.getA());
我想知道非静态方法如何修改静态变量。我知道静态方法只能访问其他静态方法和静态变量。然而,另一面是真的吗?非静态方法只能访问非静态变量吗?例如:
public class SampleClass {
private static int currentCount = 0;
public SampleClass() {
currentCount++;
}
public void increaseCount() {
currentCount++;
}
}
这段代码是编译的,我想知道为什么会有静态访问权限。
我有:
class A {
static $instances = 0;
public $instance;
public function __construct() {
$this->instance = ++self::$instances;
}
}
$a = new A();
$b = new A();
echo "<pre>";
print_r($a);
print_r($b);
echo "</pre>";
产出:
A Object
(
[instance]
本质上,我试图做一些这里提到的事情,,但是用java。
我希望在某个类的所有实例中重置一个变量,如下所示:
public class NewClass{
int variable = 1;
}
然后:
NewClass one = new NewClass();
NewClass two = new NewClass();
NewClass three = new NewClass();
Newclass.variable = 2;
System.out.println(one.variable);
System.out.println(two.variable);
System.out.
我们有'Handler‘的自注册子类,我们想要通过Subclass.me()来访问它。在Java中是否可以实现类似的功能:?
public class Handler{
static Vector<Handler> register=new Vector<Handler>();
public static Handler me() {
return register.get( this.class);// TODO
}
}
public class SubClass extends Handler{
SubClass(){regist
我想问一下static的效果:我创建了一个类music,并在声明音乐类变量时使用了static。但是当我运行我的主类来打印音乐数据时,它总是打印出与我在主类中输入的最后一个数据相同的值。
我的班级音乐:
private static String name, genre;
private static int price;
public music(String a, String b, int c){
name = a;
genre = b;
price = c;
}
我的主类代码:
music a1 = new music
当我准备OCAJP考试时,我参加了模拟考试,我遇到了下面这个关于变量和变量范围的问题。
public class HelloWorld{
static int x = 2;
public static void main(String []args){
if(x>1)
{
x++;
int x = 4;
}
System.out.println(x);
final int x = 10;
}
}
上面代码的输
我已经遇到这个问题很多次了,我从来没有费心去了解为什么会发生这种情况,也没有去了解“静态”到底意味着什么。我只是应用了Eclipse建议的更改,然后继续前进。
public class Member {
// Global Variables
int iNumVertices;
int iNumEdges;
public static void main(String[] args) {
// do stuff
iNumVertices = 0; // Cannot make a static reference to the non-static field iNum
我有一个简单的query.Basically这是一个理论上的问题,我需要弄清楚这个想法。我还没有找到合适的答案it.The问题是非常simple.Suppose的,我们有一个叫A的班级
class A{
......
}
现在,从我的main函数中,我创建了A的一个对象。
A obj = new A();
现在,在创建对象之后,我将能够访问类中存在的任何方法和变量。
但是对于静态方法或变量,我们可以通过使用类名直接实现这一点,比如
A.methodname();
现在我的问题是,如果我们创建任何类的一个对象,那么内存将被分配给引用,如果我们使用静态方法,直接通过类名调用它们,那么我们不
我一直在拼命地寻找清楚的答案,我想我有点理解它,但同时我不太明白这个关键字的广义概念,静态。
下面是我所做的设想:
package oops;
public class Math {
boolean notNumber = false;
static boolean notString = false;
public static void main(String[] args) {
int num1 = 1;
static int num2 = 1; //doesn't work
Math math = new Math();
math.no
public class Ride {
public static String name;
public static int ticketsRequired;
public static float heightRequirement;
public Ride(String name, int ticketsRequired, float heightRequirement) {
this.name = name;
this.ticketsRequired = ticketsRequired;
this.heightRequir
这个程序被认为是在main方法中创建对象时创建一个分数,并使用其他方法添加不同的对象。我使用的类包含用于将分数相加和相乘的方法。但是,在这个类中,我有构造函数、访问器和修改器,我还有另外两个方法,它们使用前面提到的类中的方法更新numerator和denominator的值。如何访问上述类中的变量? 这是带有构造函数的类,也是我试图导入变量的地方: public class Fraction {
private int numerator;
private int denominator;
public Fraction(int numerator, int de
public class NetworkEntry {
private String name;
private int cost;
private StringListExt predList;
private StringListExt succList;
public NetworkEntry(String nameval, int costval, String pred){
name = nameval;
cost = costval;
predList = new StringListExt();
succList
如果我像这样创建一个基对象:
public abstract class RIBaseObject{
static ObjectRegistry sSystemRegistry = new ObjectRegistry();
public RIBaseObject() {
}
public abstract void reset();
}
并在我创建的每个(大多数)类中扩展这个基对象,考虑到ObjectRegistry包含的参数如下:
public class ObjectRegistry extends RIBaseObject {
publi
我有这样的代码,
public class ComplexSO {
public static double real;
public static double imaginary;
public ComplexSO(double cReal, double cImaginary) {
real = cReal;
imaginary = cImaginary;
}
public static ComplexSO selfSquare() {
return new ComplexSO(Math.pow(
我在浏览一些类时发现了一个哈希集实现,如下所示
public static HashSet<String> set = new HashSet<String>();
static{
set.add("abc");
set.add("def");
set.add("eghi");
}
在static block中,我只想知道这个模式,static,initialization.Does,it最初是什么意思,当jvm启动时,我们设置了initialized值。
class A{
static int a=5;
int b=6;
void method(){
//method body
a++;
}
}
JVM如何处理静态变量处理静态变量。例如..。
A object1=new A();
A object2=new A();
上面的代码将在两个不同的内存位置创建A类的两个对象。还将创建两个variable b实例。variable a将会发生什么。哪个对象将保存静态变量的引用?当我们更新静态变量时会发生什么呢?
我对飞镖很陌生,在一个类中存储数据也有问题。我知道如何创建实例,但是我想将每个实例存储到一个我可以轻松访问的映射中。下面是我的代码..。
class myCar{
var myMapOfCars = new Map(); // I wanted this to be a class level variable that I can continuously add or remove from.
String carName; // Instance
myCar({this.carName});
addInfoToMap() {
// Some logic t
我找到了一个代码构造,我以前从未见过,也不知道它是如何被调用的。有人能给我解释一下吗?我无法通过谷歌或这个论坛找到它。
module.cpp
namespace NSModule
{
CModule CModule::Instance; //Global in this namespace
}
module.hpp
namespace NSModule
{
class CModule
{
public:
/* Some methods and such stuff */
private:
sta
为什么我们可以通过Java中的对象引用来访问静态变量,如下面的代码所示?
public class Static {
private static String x = "Static variable";
public String getX() {
return this.x; // Case #1
}
public static void main(String[] args) {
Static member = new Static();
System.o
我有一个帐户链接列表,其中包含员工和经理(从帐户继承)。问题是,我已经注意到,最后一个添加的项目似乎超出了列表中的其余部分。它为什么要这么做?我做错什么了?谢谢。我将把我的代码放在下面,并输出控制台。提前道歉,如果我真的很愚蠢,错过了一些显而易见的事情!
public class Database {
static List <Account> Accounts = new LinkedList<Account>();
public static void main(String[] args) {
Employee Geoff = new Emplo
class car
{
public:
static int i;
};
int car::i = 7;
int main ()
{
cout << car::i;
return 0;
}
静态变量分配内存是因为它在类外部的定义,并在类内声明它只是为了成为类的成员吗?为什么当它变成常量时,我们没有在类外定义它呢?
我知道分配在全局和内存中静态变量段中的静态变量和静态变量不属于任何对象。
我有一个类,我应该有一个私有数组。
private int[] array = new int[5];
我应该有一个公共方法,将数据放入数组中,但我不确定如何让它正常工作。
public static void method(int a, int b)
{
`array[a-1] = b;`
}
我试过了,它给我一个错误,告诉我非静态字段、方法或属性'Class.array‘需要一个对象引用。有人能帮我弄清楚如何处理这个问题吗?
对象作为类变量导致堆栈溢出。
public class stack {
stack obj = new stack(); // its obvious that during class loading obj will call class to
// load and infinite loop will occur.
}
让我们说,我正在使用static从类obj
public class stack {
static stack obj = new stack(); // it will not cause infinite loop