일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- try-catch
- 초보개발자
- 자료형
- 문자 단위 스트림
- SSR
- ArrayList
- 상속
- 새벽공부
- 다형성
- 바이트 단위 스트림
- 메서드
- 코린이
- throws
- 개발자
- 파이팅
- 코딩
- 자바
- 보조 스트림
- Java
- 인스턴스
- 백엔드
- 졸리다
- 배열
- 변수
- FileInputStream
- 인터페이스
- 예외 처리
- node.js
- exception
- MPA
- Today
- Total
목록파이팅 (49)
SHUSTORY
자료를 순차적으로 관리하는 구조, 배열 배열을 사용하면 자료형이 같은 자료 여러 개를 한 번에 관리할 수 있다. 배열 선언 배열을 사용하려면 이전에 배웠던 변수와 마찬가지로 먼저 선언해야 한다. 배열을 이루는 각각의 자료를 배열 요소라고 한다. 배열 요소는 자료형이 모두 같다. 먼저 저장하려는 자료의 성격에 맞게 자료형을 정하고 선언하려는 배열 요소 개수만큼 [ ] 안에 적는다. 위 예제를 통해 살펴보자면 int형 요소가 10개인 배열을 선언한 것으로 배열 길이는 10개, 배열 전체 바이트는 40바이트이다. 배열 초기화 자바에서 배열을 선언하면 그와 동시에 각 요소의 값이 초기화된다. 배열의 자료형에 따라 정수는 0, 실수는 0.0, 객체 배열은 null로 초기화되며, 배열 선언과 동시에 특정 값으로 초..
변수 유효 범위 지역 변수(로컬 변수)_함수나 메서드 안에서만 사용 가능하다. 다른 함수에서 사용 불가능하며, 지역 변수가 생성되는 메모리를 스택이라고 한다. 스택에 생성되는 지역 변수는 함수가 호출될 때 생성되었다가 함수가 반환되면 할당되었던 메모리 공간이 해제되면서 함께 없어진다. 멤버 변수(인스턴스 변수)_클래스 안에서 사용한다. 클래스가 생성될 때 힙 메모리에 생성된다. 클래스 내부의 어느 메서드에서나 사용 가능하다. 힙에 생성된 인스턴스가 가비지 컬렉터에 의해 수거되면 메모리에서 사라진다. static 변수(클래스 변수)_여러 인스턴스에서 공통으로 사용한다. 사용자가 프로그램을 실행하면 메모리에 프로그램이 상주하고, 이때 프로그램 영역 중 데이터 영역이 있다. 이 영역에는 상수, 문자열, sta..
변수를 여러 클래스에서 공통으로 사용하려면? 예를 들어 생각해보자. 학생 클래스가 있고, 이를 이용하여 여러 학생 인스턴스를 만들 수 있다. 각 학생은 고유한 학번을 가지는데, 이 학번을 학생이 입학할 때 자동으로 생성되도록 만들고 싶다. 이 경우에는 각 인스턴스마다 따로 생성되는 변수가 아닌, 클래스 전반에서 공통으로 사용 가능한 변수가 필요하다. 그리고 학생이 한 명 생성될 때마다 기준 변수 값을 1씩 증가시켜 학생 인스턴스의 학번 변수에 대입하면 된다. 이 때 클래스에서 공통으로 사용하는 변수를 'static 변수'로 선언한다. static 변수의 정의와 사용 방법 static 변수( 정적 변수, 클래스 변수 )는 자바뿐만 아니라 다른 언어에서도 비슷한 개념으로 사용되는 변수이다. 자바에서는 다른 ..
예제 객체 지향 프로그램의 객체 간 협력이 이루어지는 과정을 학생, 버스, 지하철 세 객체 사이의 협력에 관한 예제를 통해 살펴보겠다. 학생 클래스 구현하기 멤버 변수(속성) : 이름 / 학년 / 가진 돈 메서드(멤버 함수) : 지하철을 탄다. / 학생의 현재 정보를 보여 준다. ▶ 8행의 생성자는 학생 이름과 해당 학생이 가진 돈을 매개 변수로 받는다. 학생 클래스 하나를 생성하면 학생 이름과 학생이 가진 돈을 초기화한다. 디폴트 생성자를 제공하지 않으므로 8행의 생성자를 호출해야 한다. ▶ takeBus( )와 takeSubway( ) 메서드는 학생이 가진 돈을 해당 교통수단 이용료만큼 차감시킨다. ▶ showInfo( ) 메서드는 학생 정보를 출력해준다. 버스 클래스 / 지하철 클래스 구현하기 멤버..
자신의 메모리를 가리키는 this this는 생성된 인스턴스 스스로를 가리키는 예약어이다. 이 외에도 다른 역할로 this를 사용할 수 있다. * 참조 변수는 인스턴스를 가리키며, 참조 변수를 출력하면 '클래스 이름@메모리 주소' 문자열 값이 출력된다. 클래스 코드에서 사용하는 this는 생성된 인스턴스 자신을 가리키는 역할을 한다. * 한 파일에 클래스 두 개 이상이 존재할 수 있다. 이 때 public 클래스는 하나뿐이며 public 클래스와 자바 파일 이름은 같아야 한다. 생성자에서 다른 생성자를 호출하는 this 클래스에 생성자가 여러 개 있을 때 어떤 생성자에서 다른 생성자를 호출하는 경우가 종종 있다. 이때 this를 사용해 클래스의 생성자에서 다른 생성자를 호출할 수 있다. Person 클래..
교수님께 상담을 받고 왔다. 정말.. 뼈 아픈 말씀들을 마구마구... 해주셨다..ㅎ ㅎ 앞으로 열심히 열심히 할테야! 교수님께 언어공부를 어떻게 하는 게 좋을지에 대해서도 조언을 구해봤다. 교수님께서 내게 문법공부를 한 뒤에 딸려 있는 예제를 푸는 방식으로 공부하냐고 여쭤보셨다. (정답이었음) 그런데 그렇게 공부하는 것 보다는, 집을 지을 때 무엇으로 집을 짓는지보다도 설계도가 더욱 중요하듯, 코딩도 마찬가지라고 하셨다. 먼저 하나의 예제에 대해 직접 어떤 변수를 가지고 어떤 흐름으로 코드를 작성할지 flow-chart를 여러 개 작성해본 뒤, 해당 flow-chart에 대한 코드를 짜보라고 하셨다. 그렇지만 나는 기초를 탄탄하게 쌓는 게 너무 좋아서 문법 공부를 마친 뒤 시작하고 싶어서..ㅋㅋ....최..
접근 제어자 객체 지향 프로그램에서는 '접근 제어자' 예약어를 사용해 클래스 내부의 변수나 메서드, 생성자에 대한 접근 권한을 지정할 수 있다. 접근 제어자 설명 public 외부 클래스 어디에서나 접근 가능하다. protected 같은 패키지 내부와 상속 관계의 클래스에서만 접근 가능하다. private 같은 클래스 내부에서만 접근 가능하다. 아무것도 없는 경우 default이며 같은 패키지 내부에서만 접근 가능하다. 7행에서 오류가 발생한다. 그 이유는 studentName 변수의 접근 제어자가 private이므로 외부 클래스의 접근이 허용되지 않기 때문이다. get( ), set( ) 메서드 private로 선언한 변수를 외부 코드에서 사용하려면 해당 변수를 사용할 수 있도록 public 메서드를 ..
참조 자료형 크기가 정해진 기본 자료형으로 선언하는 변수가 있고, 클래스 자료형으로 선언하는 참조 자료형 변수가 있다. 객체 지향 프로그래밍을 시작할 때는 일단 어떤 멤버 변수와 메서드를 제공하여 클래스를 만들지 생각한다. 예제01에서 String이 JDK에서 제공하는 참조 자료형이다. 학생이 수강하는 과목의 이름과 성적을 예제02와 같이 구현하면 학생에 대한 클래스임에도 과목에 대한 변수가 늘어나며 깔끔하지 않은 코드가 짜여진 것을 볼 수 있다. 이 경우 다음과 같이 학생과 과목 클래스를 분리하고, 학생 클래스가 과목 클래스를 멤버 변수를 가지도록 하면 된다. 참조 자료형은 프로그래머가 필요에 의해 만든 클래스를 사용할 수도 있고, JDK에서 제공하는 클래스를 사용할 수도 있다. 기본 자료형을 사용하듯..
생성자 예제02의 6행에서 Person( )과 같은 함수를 생성자라고 한다. 클래스의 멤버 변수는 메서드에 의해 값이 변경될 수도 있지만, 처음 클래스를 생성할 때 값을 정해야 하는 경우도 있다. 생성자가 하는 일은 클래스를 처음 만들 때 멤버 변수나 상수를 초기화하는 것이다. 디폴트 생성자 생성자는 클래스를 생성할 때만 호출한다. 생성자 이름은 클래스 이름과 같고, 생성자는 반환값이 없다. 그런데 Person 클래스를 살펴 보면 Person( ) 생성자가 따로 없는 것을 볼 수 있는데, 그럼에도 불구하고 new 예약어를 이용해 객체를 만들 수 있다. 생성자가 없는 클래스는 클래스 파일을 컴파일 할 때 자바 컴파일러에서 자동으로 생성자를 만들어 준다. 이를 디폴트 생성자라고 하며, 디폴트 생성자는 매개변..
클래스 사용과 main( ) 함수 Student 클래스는 멤버 변수와 메서드로 구성되어 있다. 위의 클래스를 직접 사용해서 결과 값을 출력해보자. 프로그램을 시작하는 main( ) 함수 클래스를 사용하여 프로그램을 실행하려면 main( ) 함수에 대해 알아야 한다. main( ) 함수는 JVM이 프로그램을 시작하기 위해 호출하는 함수로, 클래스 내부에 만들지만 클래스의 메서드는 아니다. main( ) 함수를 사용하는 방법은 다음 두 가지가 있다. 1. 우리가 만든 클래스 내부에 main( ) 함수를 만든다. 2. 외부에 테스트용 클래스를 만들어 사용한다. Student 클래스에 main( ) 함수 포함하기 클래스 내부에 main( ) 함수를 만들면 이 클래스가 프로그램의 시작 클래스가 된다. 14행은 새..