- Home /
Class and instances of the class question.
When I write a line of code like this:
private someclass someclass2;
someclass2 = new someclass();
someclass2.somemethodresident;
Or a code like this:
private someclass someclass2;
someclass2.somemethodresident;
I get the same functionality. So what exactly is the use of the line: someclass2 = new someclass(); ?
someclass somclass2 = new someclass() will give you a new instance of that someclass. where as the other one will just have a reference to any object instance of someclass.
Also you cannot call a method of that class without creating a new object unless the method is a static method
So without using a new instance you can use the variables of the class directly, and also can affect it directly, right? Whereas in instances, it's just for private use and the original can't be affected in any way. Is this correct?
sounds correct.
locally instancing a class is what it is. local
access a script on a gameobject using - getcomponent()
@Laischen, you need to get familiar with Object Oriented Program$$anonymous$$g. Google it and learn basic OOPs concepts. then you will have a clear understanding of this.
I will, mostly I blame my secondary school Java $$anonymous$$cher, and Java. C# is by far better
Answer by TheEpigone · Jul 01, 2014 at 05:54 PM
When you first declare a private member variable, that variable will have a value of null.
private Car myCar; // myCar == null here
At this point, you can't use this variable, because it's null! For example:
myCar.DriveSomewhere(); // This will throw a NullReferenceException!
Using the "new" keyword runs the constructor of that class, and returns you a new instance of that class.
myCar = new Car(); // After this line, myCar will point to a new Car
Now you can use your variable, since it is a Car:
myCar.DriveSomewhere(); // This will now successfully run the DriveSomewhere method
The thing is, the variable I am trying to call is random , and I can't just have a script which says the value is 3, and another which thinks the value is 5. I solved this, I did this: Planets f = GetComponent();
x = f.numberOfPlanets;
Because the numberOfPlanets was random, I couldn't just create a new instance. It didn't occur to me to use the GetComponent for a long while, shame on me :D
Your answer
Follow this Question
Related Questions
Creating class instances 1 Answer
Name instance String variable after instance? 0 Answers
Problem accessing public instances 1 Answer