X-Received: by 2002:a0c:8ae4:: with SMTP id 33mr6856708qvw.26.1555083072130; Fri, 12 Apr 2019 08:31:12 -0700 (PDT) X-Received: by 2002:a81:148c:: with SMTP id 134mr46959856ywu.217.1555083071763; Fri, 12 Apr 2019 08:31:11 -0700 (PDT) Path: csiph.com!xmission!news.snarked.org!border2.nntp.dca1.giganews.com!nntp.giganews.com!t9no1643965qtn.0!news-out.google.com!i8ni730qtr.1!nntp.google.com!t9no1643956qtn.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.java.programmer Date: Fri, 12 Apr 2019 08:31:11 -0700 (PDT) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=50.78.95.177; posting-account=2czF5goAAAD4GBMPIGV4KcD2K4PhoB_H NNTP-Posting-Host: 50.78.95.177 References: <109a7224-f392-46c3-bf56-7d8bf2bfb4bf@googlegroups.com> <2a9f711b-78f4-483b-a94d-d7bb86434f1f@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: Re: Java variable access From: Eric Douglas Injection-Date: Fri, 12 Apr 2019 15:31:12 +0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Lines: 18 Xref: csiph.com comp.lang.java.programmer:38908 On Friday, April 12, 2019 at 10:58:22 AM UTC-4, Eric Sosman wrote: > > That was my thought, to stick with all private/protected variables. [..= .] > Note that `protected' variables are accessible *everywhere* > unless your class cannot be extended at all. >=20 Ah right, protected methods are common (and I keep thinking about the use c= ase where they must be called by a different class in the same package and = sometimes forget about possibly anything extending the class), but declarin= g a variable protected would have the same potential issues as declaring it= public unless the class is final (how common is that?). I expect it makes sense to declare custom object variables always private. = I was thinking more simple objects. If your variable is a String the wors= t that happens is something sets it to null? If your variable is an int, e= ven if it's supposed to be a multiple of 3, if you don't validate it with a= setter you could validate it in a method that uses it's value? If your va= riable is an enum?