java - Referencing a class variable from another class via a method -


i'm learning java, , use here.

at moment i'm going through polymorphism, code have has dog class, , class has method add dog objects list (somewhat arraylist).

    package chap8;      /**      * created user1 on 7/11/15.      */      class dog {         private string name;         private int age;          public int getage() {             return age;         }          public string getname() {             return name;         }          public void setage(int age) {             this.age = age;         }          public void setname(string name) {             this.name = name;         }     }      public class mydoglist {          //array hold dog objects         private dog[] dogs = new dog[5];          //int check index in dog array         private int nextindex = 0;          //add method add dog objects dog array         private void add(dog d) {             if(nextindex < dogs.length) {                 dogs[nextindex] = d;                 nextindex++;                 system.out.println("dog added @ position: " + nextindex);                 system.out.println("space left " + (dogs.length - nextindex) + " more dogs.");             }              else {                 system.out.println("no more space add dogs!");             }         }     private void display() {         (int = 0; < dogs.length; i++) {             system.out.println("name of dog: " + dogs[i].getname());          }     }          public static void main(string[] args) {             dog obj1 = new dog();             obj1.setname("corgi");             obj1.setage(2);              mydoglist doglist = new mydoglist();             doglist.add(obj1);             doglist.display();              dog obj2 = new dog();             obj2.setname("labrador");             obj2.setage(3);              doglist.add(obj2);              dog obj3 = new dog();             obj3.setname("golden retriever");             obj3.setage(5);              doglist.add(obj3);         }     } 

while process of adding dog objects works, wanted have method display, in class mydoglist display names of dog objects in dogs array in mydoglist class. realized, if method takes in dog array, there's no way know names of individual dog objects in array.

how should construct such method here?


edit

i realized, comments , answers, use getter dog variable name name. when modify code (in bold above), null pointer exception. went wrong? did try access array position before set something?

/usr/lib/jvm/java-8-oracle/bin/java -didea.launcher.port=7535 -didea.launcher.bin.path=/home/user1/documents/idea-ic-141.177.4/bin -dfile.encoding=utf-8 -classpath "/home/user1/dropbox/development/java/head first/bin:/usr/lib/jvm/java-8-oracle/jre/lib/plugin.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jce.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jfr.jar:/usr/lib/jvm/java-8-oracle/jre/lib/rt.jar:/usr/lib/jvm/java-8-oracle/jre/lib/charsets.jar:/usr/lib/jvm/java-8-oracle/jre/lib/resources.jar:/usr/lib/jvm/java-8-oracle/jre/lib/javaws.jar:/usr/lib/jvm/java-8-oracle/jre/lib/management-agent.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jsse.jar:/usr/lib/jvm/java-8-oracle/jre/lib/jfxswt.jar:/usr/lib/jvm/java-8-oracle/jre/lib/deploy.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/sunec.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/jfxrt.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/nashorn.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/zipfs.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/dnsns.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/cldrdata.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/localedata.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/sunpkcs11.jar:/usr/lib/jvm/java-8-oracle/jre/lib/ext/sunjce_provider.jar:/home/user1/documents/idea-ic-141.177.4/lib/idea_rt.jar" com.intellij.rt.execution.application.appmain chap8.mydoglist exception in thread "main" dog added @ position: 1 space left 4 more dogs. name of dog: corgi java.lang.nullpointerexception     @ chap8.mydoglist.display(mydoglist.java:52)     @ chap8.mydoglist.main(mydoglist.java:64)     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)     @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62)     @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43)     @ java.lang.reflect.method.invoke(method.java:497)     @ com.intellij.rt.execution.application.appmain.main(appmain.java:140)  process finished exit code 1 

something maybe?

public void diplay(){   (dog dog : dogs){     if (dog != null && dog.getname() != null){       system.out.println("name of dog: " + dog.getname());     }   } } 

your doglist class contains array of dogs. no need pass dog array display method.

note check null, since can't sure array positions filled.


Comments