Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!goblin2!goblin.stu.neva.ru!feeder2.cambriumusenet.nl!feed.tweaknews.nl!209.197.12.242.MISMATCH!nx01.iad01.newshosting.com!newshosting.com!69.16.185.11.MISMATCH!npeer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!spln!extra.newsguy.com!newsp.newsguy.com!drn From: Roger T Newsgroups: comp.lang.java.help Subject: Need advice on Class Member instantiation Date: 22 Sep 2011 19:55:16 -0700 Organization: NewsGuy - Unlimited Usenet $19.95 Lines: 35 Message-ID: NNTP-Posting-Host: p3f453f652f575033986a3a3030be12d85aa7765530e5de8e.newsdawg.com User-Agent: Direct Read News 5.60 Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.help:1101 Can someone give me some guidance as to what I am missing here? When I run the program, ALL of the FamilyMembers (including the class FamilyMember) get their surname changed to Goober even though only Sis explicitly gets changed. It seems as if they are both pointing to the same instance (similar to C pointer), but isn't this code creating dad and sis as two separate instances? Thanks for advice. // CODE STARTS class FamilyMember { static String surname = "Carrington"; String name; int age; public static void main(String arguments[]) { FamilyMember dad = new FamilyMember(); FamilyMember sis = new FamilyMember(); System.out.println("Dad's surname is " + dad.surname); System.out.println("Sis's surname is " + sis.surname); System.out.println("Family surname is " + FamilyMember.surname); System.out.println("Sis gets married..."); sis.surname = "Goober"; System.out.println("Sis's surname is " + sis.surname); System.out.println("Dad's surname is "+ dad.surname); System.out.println("Family surname is " + FamilyMember.surname); } }