Does Encapsulation Mean That Variables By Default Need To Be Private

Apr 9, 2015

I just recently started learning about encapsulation, how to set variables private and only accessible to other classes through setters() and getters(). I've seen a couple of programming examples, perhaps not enough but some from here, and I sort of built the assumption that by default all variables need to be private. to make things more clear, here's a card dealer I made which simply

1- generates a fulll deck of 52 cards
2- lets user decide how many players, with 5 as Max number allowed as each player is dealt 10 cards.
3- deal cards

I approached this by making A deck , card , player and game class

import java.util.ArrayList;
public class Deck {
//an Object of this Class would generate a full deck ie an ArrayList of 52 Cards
private String[] suits={"Spades","Diamond","Clubs","Hearts"};
private int[] number={1,2,3,4,5,6,7,8,9,10,11,12,13};
ArrayList<Cards> deck= new ArrayList<Cards>();

[code]....

I can understand why for example Deck class's suit and number arrays are set to private , as they only need to be accessed by this class only. however, both the Deck class's deck arraylist and the Player class arraylist are not private, as I need to transfer these values from one to the other and it felt to me that setting them to private would make it more difficult to deal with them, but what I did instead is to set the Game class dealCard(), which is the only method that have access to them as private. does this achieve the same effect or do I need to set both of these arrayList to private?a follow up question, this is more related to the actual card dealer program, in this code

private void dealCards(){

for(int x = 0 ; x < playerCount ; x++){
for(int y = 0 ; y < 10; y++){
playerList.get(x).pile.add(deck.deck.get(0));
deck.deck.remove(0);
}
}
}

is there an API in ArrayList class that moves(adds to receiver and remove from giver) element across ArrayLists?

View Replies


ADVERTISEMENT

Encapsulation Hide Private Variable

Sep 10, 2014

As below code showing that you cannot directly access the private variable as i understood,  
 
public class EncapsulationDemo{   private int ssn;  
private String empName;   private int empAge;   //Getter and Setter methods  
public int getEmpSSN(){   return ssn;   }  
public String getEmpName(){   return empName;  

[Code] .....

View Replies View Related

Private Variables In Class / Constructor

Jan 7, 2014

When creating a class with a constructor, why does one have to create private variables (attributes) to be used as parameters by the object? The object's parameters will be set to be exactly equal to the private variables (attributes), so what is the point of having the private variables (attributes) Why are both private variables (attributes) and parameters needed when they are set to be equal each other anyway?

View Replies View Related

Object / Methods - Private Instance Variables

Jun 30, 2014

so, i was reading my java book and learning about objects and methods and it starts talking about Encapsulation and mentions that it's good practice to set instance variables as private and instead of accessing the instance variables directly, we should create a set method and get method to get and set the stuff we want to pass to the class containing the object...

for example, in this class, we're passing the integer 70 for object dog one and integer 8 for object dog two for the dog class... and these these 2 integers are sent to the setsize method so we're not accessing instance variable size directly.

i dont quite get it though....if we the programmer are the one deciding what size the integer is for the dog, and the setsize method takes the one.setSize(70) or (8) and puts them in setsize(int s) as s... but only to copy that integer stored in s back to private int size.... why do we even need to bother with making these two extra methods such as setSize, getSize?

in the book it says that... well what if the code gets into the wrong hand and someone writes something like one.setSize(0) then you would get a dog with size 0 which is essentially illogical. but then again, i'm the programmer, and i am the person who writes the code and passing the right integer.The reason for public and private... that part i understand... i can see why if a variable's data can get changed amidst the code during calculations and you dont want it to directly change the original variable and have it mess up the code, but this code from the book just a bad example of demonstrating the reason? since we manually pass the information ourselves and passing it to method setSize... and all setSize does is stores it in another integer, only to copy it right away to size (which is the original private variable we were tryign to protect?

Any simple code to demonstrate how the code might end up changing an instance variable and why we would want to protect it by using private?

class GoodDog {
private int size;
public int getSize() {
return size;
}
public void setSize(int s) {
size = s;

[code]...

View Replies View Related

Assigning Private Variables Values From Constructor

Jun 13, 2014

I am able to get output from my constructor when I place a loop inside of it. However when I try to access the private variable that I thought was set by the constructor I get nothing. When I check its size it is zero as well.

Java Code:

public class WinningHand extends PokerCalculator {
private int p1Size;
private int p2Size;
private String[] p1Hand = new String[p1Size];
private String[] p2Hand = new String[p2Size];

[Code] ....

View Replies View Related

How To Add Variables And Default Values To Arraylist

Mar 23, 2015

I am facing difficulties in identifying the proper way to add the selected colors of cards into an arraylist. I am having an arraylist which is:

Java Code: private List<String> selectedCars = new ArrayList<String>(); mh_sh_highlight_all('java'); And one more for the carColors:

Java Code: private List<String> carColors = new ArrayList<String>(); mh_sh_highlight_all('java');

The selectedCards array will store the selected cars ['TOYOTA','MAZDA','NISSAN'] as per the selection from the user.For certain types, there is one default color which is 'Black', however for some of them, the user can select different colors.(ex. if selection is 'Toyota')
Java Code:

String carColor="";
String toyotaColor=""; // The value will be retrieved from the form once the user selected the color
if (selectedCars.contains("MAZDA"))
{
carColor="Black";
}
else if (selectedCars.contains("TOYOTA"))
{
carColor=toyotaColor;

[code]....

View Replies View Related

Default Path Value In System Variables

Feb 19, 2014

I deleted my default path value in system variables in the process of adding java location in that.. How can I get that default PATH value.. I am using windows 7 enterprise OS 32 bit in Dell laptop...

View Replies View Related

How Does Encapsulation Improve Maintainability

Jan 29, 2014

I understand making things private and using getters and setters to prevent corrupt data/valdiation. I am having trouble picturing a scenario where I can change my code without breaking others. What can I change without breaking existing code? One example I can think of is I can change an instance variable name since the getter for it will return it regardless. I am looking for a more vivid example...

View Replies View Related

Encapsulation - Protected Attributes Should Be Visible To Child Classes

Jun 7, 2013

I found the following inheritance and encapsulation issue . Suppose you have a parent class with a non-static protected attribute.

package package1;
public class Parent{
protected int a = 10; // this is the non-static protected attribute in question
public static void main(String args[]){
// whatever logic
}// end Parent class
}// end main()

Now suppose you have a child class in another package and you have imported in the parent class.

package package2;
import package1.Parent;
public class Child extends Parent{
public static void main(String[] args){
Parent p = new Parent();
Child c = new Child();

System.out.println(p.a); //should print out 10 BUT DOES NOT
System.out.println(c.a); //should print out 10
}// end main()
}// end Child class

My observation is that p.a produces an error even though, to the best of my knowledge, it should not. I believe the statement "System.out.println(p.a);" should print out a 10.

Am I misunderstanding something about inheritance and encapsulation?

View Replies View Related

3 Different Files Using Encapsulation (Data Hiding) - Object Creation Error

Mar 21, 2015

I have my code in 3 different files using encapsulation (Data hiding) and i have 1 problem at the very end of my code in my if and else statement (very bottom) when trying to call the classes from the other 2 documents. I will put the code in 1st document to 3rd document.

// FIRST DOCUMENT
public class CollegeCourse { //class name
//variables
String deptName;
int courseNum;
int credits = 3;
double fee;

[Code] ....

UPDATE: error message is

UseCourse.java:24: error: cannot find symbol
LabCourse lc = new LabCourse(department, course, Credits);
^
symbol: variable department
location: class UseCourse
UseCourse.java:24: error: cannot find symbol
LabCourse lc = new LabCourse(department, course, Credits);

[Code] ....

4 errors

View Replies View Related

What Does Static Private Actually Mean

Mar 19, 2015

So I'd like to know what all the statement, not sure if it's the correct way of calling them but I'd like to know what like all of those purple-ish colored words in eclipse actually mean.Here's what I know so far, so if you can add some stuff to it or just correct me:

public - can be accessed by different classes.
private - can't be accessed by different classes.
static - adds a '.' which pretty much lets you like use methods on it? Not really sure about this one.
final - a final value of a variable meaning it couldn't and willn't change?
super - I have no clue, maybe something that has to be executed first? Not sure.
void - bassicly you don't have to use return as it doesn't return any value.
this - Uh-.. I think it has something to do with the class this keyword has been entered into, not quite sure what it does though.

I assume there are alot more but I am just not sure about these common ones, what the actually do and what's their purpose?

View Replies View Related

Using Main As Private?

Mar 25, 2014

What happened when we use main() as a private. . . . .???????

View Replies View Related

Private JTextField Update

Jan 22, 2015

I am creating a slot machine using eclipse. I am trying to get the "winnings" JTextField to be updated in a way so that when the random images have been selected it adds to the number that is already displayed in the JTextField as opposed to what it is doing at the minute which is just displaying how much was won on that particular spin. I am also struggling to set a code for when noting is won, nothing is added. My code is below.

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.util.*;
import javax.swing.Timer;

[Code] ....

View Replies View Related

Using Private ArrayList Of Items?

Apr 29, 2014

It isn't messing up it just keeps making me make my arraylist static and i'm not sure why.

public class driver
{
private static ArrayList<AddItems> items;
public driver()

[Code]....

View Replies View Related

Each Class Contain Private Variable

Sep 22, 2014

I'm working on a project that contains multiple classes. Each class contains and must contain only PRIVATE variables. Here's my issue. When my test code calls for a new instance of "StudentClass" as so:

StudentClass studentClass = new StudentClass(offeredClass.getClassIdNumber(),
offeredClass.getClassName(),
offeredClass.getClassroom());

The corresponding constructor won't let me initialize it's variables because they are declared private within another class, as shown here:

StudentClass (float classIdNumber, String className, Classroom room){
this.classIdNumber = classIdNumber;
this.className = className;
this.room = room;
}

When getClassName, getClassroom, and getClassIdNumber are passed to a toString() method elsewhere in my test code. the output is returned just fine. When passed through the StudentClass, I'm getting Null across the board.

View Replies View Related

Inheritance And Private Methods

Jul 6, 2014

The first is clear , new Person().printPerson(); displays Person but for the second : new Student().printPerson(); it accesses the Student constructor that points to the Person class => object. It builds the Person instance then goes back to the Student constuctor .Both methods are private and to my knowledge invisible one to the other , except that you cant run the the Person one because it's private so the only one in the Student class is the Student one . Guess it 's incorrect , but why ? (is because private methods cant be overriden and somehow the super class one always has priority ? , even if it's private?)

public class Test {
public static void main(String[] args) {
new Person().printPerson();
new Student().printPerson();

[code]....

View Replies View Related

Access Private Member

May 7, 2014

public class StudentNumber {
/*
public StudentNumber(){
System.out.println("test");
}
*/
private char c='W';
public StudentNumber(float i){
System.out.println(i);

[Code] ....

Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - c has private access in extention.pkgsuper.StudentNumber
at extention.pkgsuper.ExtentionSuper.main

I did cast type. So what's the problem?

View Replies View Related

Java - Private Arrays / Integers?

Jan 16, 2015

I have a project for a class where I'm supposed to be something with private arrays and private integers and I still don't understand the point of private anything within java. if I want to change a variable I'll change it. if I want it to stay the same I'll leave it the same. so what point is all this private/public nonsense unless I'm trying to stop hackers or something?

View Replies View Related

Error - ArrayList Has Private Class

Jan 30, 2015

Java Code:

import java.util.Scanner;
import java.util.ArrayList;
public class Problem1
{
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
ArrayList<String> list = new ArrayList<String>();

[Code] ....

There is an error and says that my ArrayList has private access. I can't figure out how to fix it.

The code runs but when I enter "Quit", the program just stops. The arraylist isn't printed out?

View Replies View Related

Accessing Private From Driver Class

May 14, 2015

I came across the below

1) When a variables are declared "Private" How should it be accessed from the driver class ? Sometimes i get an error in driver class saying "your variable is declared Private" why am I getting this error ...

The document says "Private" declared variables should be accessed only through methods. What does that mean.

View Replies View Related

Cannot Access Field Even Though It Is Declared As Private?

Jul 9, 2014

I think the following code should trigger a compiler error.

public final class IPoint3D {
private double x;
private double y;
private double z;
public IPoint3D(double x, double y, double z)

[Code] .....

View Replies View Related

No Default Constructor

Nov 2, 2014

The LocalStudent class inherits the Student class. The IDE states an error of "no default constructor in Student class".I understand that if a LocalStudent object is created, the default constructor of its superclass (aka Student class) will be called implicitly.there is no LocalStudent object being created, so why is the default constructor of Student being called ?

The default constructor of LocalStudent is also overloaded by the created no-arg constructor containining subjects = null; . So there is no call to the superclass default constructor from the default constructor of LocalStudent.

public class Student {
private char year1;
public Student(String name, char year){
year1 = year;
}
public char getYear(){
return year1;

[code]...

View Replies View Related

All Instances Of Same Class Change Each Other Private Variable

May 2, 2015

I have a class named Base and a private variable named _hopcount i have 10 instances of class base i use _hopcount as creteria to some if but other instances edit _hopcount so i want to prevent _hopcount edit by other instances; I want to have private variable which other instances of same class can't modify it.

public class Base extends TypedAtomicActor {
private int _hopcount = 0;
if(_hopcount <= 3) {
some code;
}
public function() {
_hopCount += 1;
}
}

View Replies View Related

Private Method For Changing String Instance

Feb 12, 2015

I want to make a private method that will change the value of a instance variable like this:

String bla = "bla bla bla";
private void changeString (String x) { x = "eee";}
changeString(bla);

Now value of the variable bla should be "eee" but its not, it is stil "bla bla bla".

View Replies View Related

Private Static Void Print Section

Dec 10, 2014

I have problems with private static void print section, something is missing? And in case 4, I want it to stop the program(end the loop) but it keeps going.

import java.util.Scanner;
import java.util.ArrayList;
public class Dogregister16 {
public static ArrayList<Dog> dogregister = new ArrayList();
private static Scanner keyboard = new Scanner(System.in);
public static void main(String[] args) {
initiate();

[Code] ....

case 4:
System.exit(0);
System.out.println("Exit program");
}
}
}
}

View Replies View Related

Creating A Constructor Without Private Implementations Only Methods?

Jul 14, 2014

I thought you can only create a new object using private implementations and then using a constructor to set your arguments inside the parameters of the constructor to the instance variables but how come he created an object without any private implementations and just methods inside the constructor.

import javax.swing.JFrame;
public class MyWindow extends JFrame {
public static void main(String[]args){
new MyWindow();
}
public MyWindow(){
setSize(500,500);
setVisible(true);
setTitle("MyWindow");
}
}

View Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved