전체 글 (143) 썸네일형 리스트형 static 변수 개념 static 키워드의 이해 클래스 변수 라고도 한다. 클래스의 모든 인스턴스가 공유하는 변수다. 여러 객체들이 동일한 변수를 공유할 필요가 있을 때 사용한다. ex 은행의 변호표 package com.static1;// 클래스 설계public class NumberPrinter { /* static 변수, static 메서드는 객체 생성 없이도 클래스 이름으로 바로 접근 가능하다. 왜? Heap 메모리에 들어가기 위해서는 new 키워드와 생성자를 호출한 뒤 동작하지만 Method area 영역은 프로그램을 실행시키면 바로 메모리를 할당받아 실행되는 영역이다. */ //멤버 변수 - NumberPrinter에 소속된 변수 private.. 메서드를 활용한 아기 밥주기 게임 아기에게 밥과 물을 주면서 잠을 관리하는 프로그램을 짜봤다. 클래스에서 아기의 속성을 정의하고아기의 행동을 구현했다.package com.my;// Baby 클래스 설계public class Baby1 { //속성 private String name; private int hunger; private int thirst; private int sleepy; //생성자 public Baby1(String babyNm, int babyHn, int babyTs, int babySp) { name = babyNm; hunger = babyHn; thirst = babyTs; sleepy = babySp; } //.. getter, setter메서드와 this 키워드 private 접근제어지시자로 접근이 제한된 멤버변수에 접근하라면 getter, setter 메서드를 쓸 수 있어야 한다. this 키워드를 활용하면 이 과정을 포함해 클래스 설계를 쉽게 할 수 있다. this 키워드의 역할은1.자신의 주소를 나타낸다.2.생성자에서 또 다른 생성자를 호출 3.자신의 주소값을 반환한다.package com.this1;//Person 클래스 설계public class Person { /* this의 3가지 사용법 1. 자기 자신의 주소를 가리킨다. 2. 생성자에서 다른 생성자를 호출한다. 3. 자신의 주소값을 반환시킨다. 먼저 1번 용법을 알아본다 - 문법, 이유 */ //속성 private String name; pr.. 접근 제어 지시자 Accecc Modifier 접근제어지시자 Access Modifier 1. public 어디서나 2. default 패키지 내부 3. private 클래스 내부-----------------------------------pretected... 상속개념이해필요 접근 제어 지시자 그래서 왜 사용하는가? 만약 후임개발자가 실수로 메서드를 통해 코드를 작성하지 않고 바로 멤버변수에 접근해서 수정하는 코드를 작성했다면? 실수할 수 있는 가능성이 있다. 만약 balance 변수에 대한 외부접근을 차단한다면? 외부에서는 오직 deposit, withdraw 메서드로만 접근 가능 이같은 처리를 캡슐화 라고도 한다.----------------------------------- 추가로private 접근제어지시자로 접근이 제한된 멤버변수에 접근하.. 생성자를 호출해 클래스 상호작용 . (쩜) 연산자 활용해 클래스 간 상호작용을 연습했다. B클래스로 연결되는 A클래스 설계package com.dot;// A 클래스 설계 측public class A { B b; // 생성자 - 인스턴스화할때 수행하는 코드 public A() { System.out.println("1단계 A 생성자 호출"); b = new B(); // B 객체 생성 } public void callA() { System.out.println("1단계 callA() 메서드 호출"); System.out.println("===== ===== ===== ===== ====="); }}//end of class C클래스로 연결되는 B클래스 .. 메서드를 개념을 활용한 커피머신 프로그램 커피머신 클래스 설계package com.method;/*메서드란?객체에 소속된 함수로클래스의 상태(데이터)를 활용하거나객체와 관련된 작업을 처리할때 사용한다. */public class CoffeeMachine { //속성 int water; //물의 양 int coffee; //커피의 양 //생성자 //메서드 public void refillWater(int amount) { // 물 채우기 if (amount > 0) { water += amount; System.out.println(amount + "ml 물을 채웠다"); System.out.println("남은 물:" + water); .. 생성자와 메서드를 활용해 class 사이 상호작용을 해본다 Bus, SubwayStudent 클래스를 각각 작성했다. Student가 대중교통을 이용하면 잔고가 줄고대중교통은 잔고가 늘어나는 프로그램을 만들어본다. 먼저 Bus 클래스 설계 클래스를 설계할때는 속성 / 생성자 / 메서드 순으로 하면 된다.package ch10; // 클래스 설계 측public class Bus { int busNo; int busCount; int busincome; // 생성자 public Bus(int bno) { busNo = bno; // 객체 생성시 가장 먼저 실행 } // 메서드 - 승객을 태워보자 public void take(int pay) { busincome += p.. 클래스 설계와 생성자의 활용 생성자 (constructor) 기본 생성자 / 사용자 정의 생성자 "필수적인 값을 넣도록 강제한다." 클래스의 인스턴스(객체)를 생성할때 호출되는 정해진 유형의 메서드이다. 객체가 생성될 때 가장 먼저 수행되는 코드이기도 하다. ! 기본 생성자 컴파일러가 자동으로 생성해준다. ! 사용자 정의 생성자사용자가 필요에 의해 직접 생성자코드를 넣어주는 것을 가리킨다. ! 생성자 오버로딩이란 생성자가 여러개인 상황을 가리킨다. package ch08;public class Dog { String name; //사용자 정의 생성자 public Dog(String s) { name = s; } /* 생성자는 객체가 만들어질 때 제일 먼저 수행하는 코드가 된.. 이전 1 ··· 12 13 14 15 16 17 18 다음