전체 글 176

[예제] 객체 지향

1. 교통 수단(버스, 지하철 이용) John님의 남은 돈은 7500원입니다. Kelly님의 남은 돈은 7000원입니다. Harry님의 남은 돈은 10000원입니다. 버스 100번의 승객은 1명이고, 수입은 1000원입니다. 2호선의 승객은 1명이고, 수입은 1500원입니다. 7호선의 승객은 2명이고, 수입은 3000원입니다. public class Student { // 멤버 변수 String name; int money; // 생성자 public Student(String name, int money) { this.name = name; this.money = money; } public void takeBus(Bus bus) { this.money -= 1000; bus.take(1); } publ..

Java 2022.05.25

멤버 변수

멤버 변수는메소드 밖에서 선언된 변수를 말한다. 메소드 안에서 선언된 변수는 지역 변수라 한다. 멤버 변수의 구성 [public/private/protected] [static/final] 변수 타입 변수명; 멤버 변수 선언 int a; public int b; private MyClass myclass; 선언과 초기화, 생성을 같이 할 수 있는데 다음과 같다. public int b=0; private MyClass myclass = new MyClass(); 접근 제어 한정자 Access control modifier - 멤버 변수 public :: 모든 클래스에서 접근 가능하다 private :: final은 한 번 선언되면 변경이 불가능하다. protected :: public과 default의 ..

Java 2022.05.24

객체 지향

p242-249 정리 객체 배열 많은 수의 객체를 배열로 다루면 편리하다. 이를 객체 배열이라 한다. 그렇다고 객체 배열 안에 객체가 저장되는 것은 아니고, 객체의 주소가 저장된다. 객체 배열은 참조 변수들을 하나로 묶은 참조 변수 배열인 것이다. TV tv1, tv2, tv3 ↓ TV[] tvArr = new TV[3]; 길이가 3인 객체 배열 tvArr을 위와 같이 생성하면 각 요소는 참조 변수의 기본 값인 null로 자동 초기화 된다. 그리고 이 객체 배열은 3개의 객체 주소를 저장한다. 객체 배열을 생성하는 건, 그저 객체를 다루기 위한 참조 변수들이 만들어진 것일 뿐, 아직 객체가 생성되지 않았다. 객체를 생성해서 객체 배열의 각 요소에 저장해야 한다. 객체 배열만 생성해서 에러가 발생하는 게 ..

Java/정석 2022.05.24

+16 멤버 변수(static, instance)

// 다른 공간 c1.number = 3 c1.image = ♣ c2.number = 5 c2.image = ♣ // 같은 공간 c1.width = 200 c1.height = 250 c2.width = 200 c1.height = 250 class Card { int number; // 인스턴스 String image; static int width; // 정적 static int height; } public class 클래스구성요소 { public static void main(String[] args) { Card c1 = new Card(); c1.number = 3; c1.image = "♣"; c1.width = 150; c1.height = 180; Card c2 = new Card(); ..

수업 2022.05.24

자바 은닉화: 캡슐화 encapsulation

캡슐화는 변수와 클래스를 하나로 묶는 작업이다. 캡슐화의 중요 목적은 중요한 데이터를 보존, 보호하기 위해 사용한다. 클래스에 담는 내용 중 중요한 데이터나 기능을 외부에서 접근하지 못하게 막고 객체가 제공하는 필드와 메소드를 통해서만 접근이 가능하다. 이렇게 접근을 제한함으써 유지보수나 확장 시 오류의 범위를 최소화 할 수 있고 객체 내의 정보 손상과 오용을 방지하고 데이터가 변경되어도 다른 객체에 영향을 주지 않아 독립성이 좋다. 캡슐화 방법 1. 멤버 변수에 접근 제어자 private를 붙인다. (private: 자기 클래스에서만 접근 할 수 있는 것) 2. 멤버 변수에 값을 넣고 꺼내 올 수 있는 메소드를 만든다. (set/get 이용해 메소드를 만든다) 123 jay public class Sc..

Java 2022.05.24

+15 객체 지향, 클래스 데이터형 제작

학생 3명 성적 관리 1. 국어 2. 영어 3. 수학 4. 총점 5. 평균 6. 학점 1. 데이터 저장 _ 일반 변수 중복 코딩이 많고, 복잡 이름: 김가가 국어: 45 영어: 83 수학: 63 총점: 191 평균: 63.67 ================== 이름: 김나나 국어: 82 영어: 43 수학: 100 총점: 225 평균: 75.00 ================== 이름: 김다다 국어: 14 영어: 92 수학: 41 총점: 147 평균: 49.00 ================== public static void main(String[] args) { // 1. 국어 점수 int kor1, kor2, kor3; // 2. 영어 점수 int eng1, eng2, eng3; // 3. 수학 점..

수업 2022.05.23

함수 호출 방식 call by value, call by reference

call by value : 값에 의한 호출 : 메소드로 인자 값을 넘길 때 그 값을 복사해 넘기는 형태 : 메소드 호출 시 메소드 내에서는 복사 된 값으로 작업을 하기 때문에 원래의 값을 변경시키지 않는다. call by reference : 참조에 의한 호출 : 메소드로 인자 값을 넘길 때 그 객체를 참조하는 주소를 넘겨주는 형태 : 메소드 내에서도 원래의 값에 접근해 변경 가능하다. Call by value 인자 값으로 기본 형 사용 before num1 = 10 num2 = 20 after num1 = 10 num2 = 20 static void swap(int num1, int num2) { int temp; // 자리 바꾸기 temp = num1; num1 = num2; num2 = temp;..

Java 2022.05.21

+14 메소드 정리(매개변수)

변수 생성자 메소드 객체 지향 3대 요소 1. 캡슐화 2. 상속 / 포함 3. 다형성 접근 지정어 → public, private, protected, default 옵션 → static, abstact, final 리턴형 : 사용자 요청 처리하는 기능 → 결과 값 보여주는 데이터형 매개변수 : 메소드에서 메소드로 값 전송하는 기능, 사용자 요청 값 : 여러 개 사용 가능 → 3개 이상이면 배열, 클래스 사용 권장 : 클래스는 1개 정보만 담는다. : new → 메모리 다르게 저장 메소드명 : 식별자 지역 변수 : 메소드 안에서 사용되는 변수, 메소드 안에서만 사용 : 메소드가 종료하면 자동으로 메모리에서 해제 매개 변수 입력, 출력 연결 1. 정수 입력: 100 입력 받은 정수 값: 100 static..

수업 2022.05.20

+13 사용자 정의 클래스, 변수 설정 예제

데이터형 기본형: 정수, 실수, 논리, 문자 → 자바에서 지원하는 데이터형 참조형: 배열(같은 데이터형 모아서 관리), 클래스(다른 데이터형 모아서 관리) 클래스 용도 : 데이터만 모아서 관리 (데이터형 클래스) → ~DTO, ~VO(★중요), ~Bean : 기능만 모아서 관리 (액션 클래스) → ~DAO(★중요), ~Manager, ~Service(BI)(★중요) : 데이터 + 기능 = 혼합 클래스 → 조립 → ~Model, ~Controller(★중요), ~Action class FoodCategory{ // 클래스: 다른 데이터 모으기 int cno; // 카테고리 번호 String poster; String title; String subject; } public class 사용자정의클래스 { p..

수업 2022.05.19