본문 바로가기

전체 글

자바를 잡아라 제 12장 - 접근조차 하기 힘들 때에는 우회해서라도 접근하자 접근 제한자 (Access Modifier) : 내가 오라고 할 때만 와 클래스와 멤버변수, 메서드, 생성자 의 접근을 제어할 수 있는 제한자이다 외부에서 객체 생성을 막기 위해 생성자를 호출하지 못하게 하거나 객체의 특정 데이터를 보호 하기 위해 해당 멤버변수에 접근하지 못하도록 막는 것이 접근 제한자의 역할이다 라이브러리 클래스를 설계할 때는 외부 클래스에서 접근할 수 있는 멤버와 접근할 수 없는 멤버로 구분해서 변수 , 생성자 , 메서드를 설계하는 것이 바람직하다 클래스에는 접근 제한자를 public과 default만 붙일 수 있다 [ 접근제한자의 종류 ] 1. public : 같은 클래스 , 같은 패키지 , 다른 패키지 상관없이 접근이 가능 2. protected : 같은 클래스, 같은 패키지는 .. 더보기
자바를 잡아라 제 11장 - 헷갈릴 땐 그냥 외우자 this : 이것 저것 요것 그것 자기 자신 객체를 지정할 때 사용하는 키워드이다 this. 을 사용하면 동일 클래스 내의 멤버 멤버변수, 메서드 를 참조 할 수 있다 this( ) 를 사용하면 생성자 내부에서 자신의 다른 생성자를 호출할 수 있다 ① this. 를 사용하여 Person클래스 내부에 선언된 멤버변수를 참조 ( 매개변수 구분 가능하게 함 ) ② this( )를 사용하여 name은 매개변수로 받고 1은 기존의 Person 생성자를 참조하여 age라고 판단 가능 ③ this( )를 사용하여 Person 생성자를 참고하게 되어 "이유없음"은 name으로, 1은 age로 판단 가능 다음 예제를 통해 확인해보자 ▼ [ Person 클래스 - 부모 클래스 ] ① 멤버변수인 String 타입의 name.. 더보기
자바를 잡아라 제 10장 - 물려받는 게 없다면 스스로 만들어라 패키지 (package) : 서류도 파일철 해야 편하게 볼 수 있는 법 : ) 개발자가 직접 만들어 사용하는 사용자 정의 클래스와 JDK(Java Development Kit)안에 포함되어 있거나 다른 개발자들이 미리 만들어 놓은 클래스 클래스들은 매우 종류가 많고 비슷한 기능들을 분류시켜야 할 필요성 이 있기 때문에 서로 관계가 있는 클래스들을 패키지로 묶어서 관리한다 현재 클래스에서 다른 패키지의 외부 클래스를 사용하고 싶은 경우에 import 키워드로 해당 클래스의 전체 경로 패키지명까지 포함해 지정해줘야 한다 ( 해당 패키지 안에 들어있는 모든 클래스를 사용하고 싶다면 * 기호를 넣어주면 된다 ) ex) import java.util.Scanner; ex) import java.util.*; [ .. 더보기
자바를 잡아라 제 9장 - 차원이 다른 클래스를 보여줘야 된다 Class(클래스) : 똑같은 걸 계속 만들기 위해선 기준이 필요해 클래스가 필요한 이유 객체를 대량으로 생산을 해야 할 때 보다 효율적으로 진행하기 위해서 정형화된 틀이 필요하다 이 때 클래스는 정형화된 틀 역할을 하며 객체를 빠르고 용이하게 생산할 수 있게 해준다 ▼ 계산기의 기능을 하나의 틀로 정형화 클래스를 생성해보자 ▼ 클래스 이름 인스턴스 이름 = new 생성자 ( ); [ 멤버변수 & 지역변수 ] 멤버변수 ( Member Variable ) 지역변수 ( Local Variable ) 클래스 안에서 선언 된 변수 객체를 생성할 때 각 데이터 타입의 기본 값으로 자동 초기화 기본 값 : 정수형 0, 실수형 0.0, 논리형 false, 객체 null 메서드 안에서 선언된 변수 사용하기 전에 반드시.. 더보기
자바를 잡아라 제 8장 - 믿을만한 게 없을 때는 나 자신을 믿자 메서드(method) : 반복적인 일상이 지겨워 메서드는 반복되는 코드를 줄여주고, 좀 더 구조화시켜 우리가 코드를 알아보기 쉽게 함 객체지향프로그래밍에서 메서드는 '객체가 가져야할 기능을 구현하기 위해 만든다'라고 표현 메서드의 이름 뒤에는 반드시 소괄호'( )'가 와야 함 [ 메서드 선언 방법 ] ( 매개 변수) { 기능 상세; } 반환 유형(return type) 메서드가 실행한 후 메서드를 호출한 곳에 반환하는 값의 데이터 타입 메서드는 반환값이 있을 수도 있고 없을 수도 있는데 없는 경우에는 반환 유형에 void를 적어줘야 함 반환값이 있는 메서드를 호출할 때는 해당 반환유형에 맞는 변수에 반환값을 저장해야 함 메서드가 실행의 결과값을 반환할 때는 r.. 더보기
자바를 잡아라 제 7장 - 버겁다고 느낄 때 잠시 쉬어도 좋아 탈출문 : 프로그램의 실행 순서를 지정된 곳으로 이동시키는 문장으로 반복문 또는 블록구조에서 빠져 나올 때 사용 [ break, continue, return문 ] [ break ] 반복문 내의 어떤 곳이든 위치할 수 있으며, 처리 도중에 break를 만나면 반복문을 곧바로 빠져나옴 중첩 반복문의 경우에 내부 반복문에서 break가 사용되었을 경우 그 break문이 속한 내부 반복문만 빠져나옴 중첩 반복문에서 바깥쪽 반복문까지 종료시키려면 바깥쪽 반복문에 이름(label) 을 붙이고, "break 이름;"을 사용 public class BreakEx01 { public static void main(String[] args) { for(int i = 1; i 더보기
자바를 잡아라 제 6장 - 끝이 어딘지 모를 땐 현재에 집중해라 [ 2022년 9월 27일 화요일 ] 중첩 반복문 ★ 중첩 반복문을 구현할 때에는 범위를 정확하게 파악해야 함 [ for문의 이중 구조 ] for ( 초기값; boolean형 조건식; 반복 표현식 ) { for ( 초기값; boolean형 조건식; 반복 표현식 ) { 반복할 실행문; } } Example - (1) 중첩 반복문으로 통해 다음과 같은 모양을 출력 public class MultiForEx02 { public static void main(String[] args) { // 회전할 때마다 횟수가 변하는 중첩반복문 /* * * * * *** * ***** * ******* * ********* * 1행 1번 / 2행 3번 /3행 4번 */ int star = 5; for(int i =1 ; i 더보기
코딩은 실전이다 - (5) 이중 for문으로 구구단 출력하기 [1] 구구단 2단 ~ 9단 출력하기 public static void main(String[] args) { //2단~9단까지 출력 for(int i = 2; i 더보기