반응형

전체 글 102

자바 제어자-2

final 제어자 필드, 지역 변수, 메서드, 클래스 앞에 위치할 수 있다. 각 위치마다 의미가 다르다. · final 변수 : 한 번 대입된 값을 수정할 수 없다(변수가 저장한 최종값. 최종 변수) final 필드의 초기화는 반드시 생성자에서 한다. 일반 필드와 달리 강제 초기화되지 않기 때문이다. ※ final 변수에 원래 값을 또 대입해도 될까? final 변수 값을 변경할 때는 값을 기준이 아니라 한 번 대입을 했는지 안했는 지가 초기화할 수 있는 기준이 된다. 값이 동일하던 안하던 필드에 값이 한 번 대입되면 이후에 또 값을 입력하는 행위는 불가하다 · 메모리 구조 필드는 일단 멤버이기 때문에 final이든 아니든 객체 속에 포함되지만 객체 생성 시 final 필드값은 상수 영역에 1개 복사된다..

JAVA/공부 2022.07.02

클래스 상속과 다형성

상속 부모 클래스의 멤버를 내려받아 자식 클래스 내부에 포함시키는 자바 문법 요소 -> 부모 클래스는 자식 클래스들의 공통적인 특징을 가지고 있는 클래스 · 장점 1. 코드의 중복성이 제거된다 2. 클래스의 다형적 표현이 가능하다 ※ 다형적 표현 1개의 객체를 여러 형태로 표현할 수 있는 특성 · 문법 class 자식클래스 extends 부모클래스 { //.. } ※ 자식 클래스는 부모클래스를 다중 상속 불가 -> 모호성 발생 가능하기 때문에. (부모 클래스가 여러 자식 클래스를 상속하는 건 무관) · 상속 시 메모리 구조 class A { int m; void abc() {} } class B extends A { int n; void bcd() {} } B b = new B(); 자식 클래스 B의 객..

JAVA/공부 2022.07.02

자바 제어자-1

접근 지정자 접근 지정자는 클래스 내부 4요소 앞에 붙을 때와 클래스 자체에 붙을 때를 나눠서 생각해야 한다. · 멤버 및 생성자에 붙는 접근 지정자 접근 지정자의 종류 1. public : 동일 패키지 안 모든 클래스 + 다른 패키지의 모든 클래스에서 사용 가능 2. protected : 동일 패키지 안 모든 클래스 + 다른 패키지의 자식 클래스에서 사용 가능 3. default : 동일 패키지 안 모든 클래스에서 사용 가능 4. private : 자신의 클래스 내부에서만 사용 가능 ※ 같은 패키지의 클래스는 같은 폴더에 위치한 클래스 ※ 접근 지정자를 지정 안 할 시 모든 클래스 내부 구성 요소는 default 접근 지정자 · 클래스에 붙는 접근 지정자 클래스에선 public, default 접근 지..

JAVA/공부 2022.07.02

클래스 외부 구성 요소

클래스 외부 구성 요소 : 패키지, 임포트, 외부 클래스 패키지 비슷한 목적으로 생성된 클래스 파일들을 한 곳에 모아 둔 폴더 ※ 여러 개의 패키지를 생성할 수도, 아예 생성하지 않아도 무관하다. 아예 생성 안하는 경우엔 default package에 해당된다. 생성된 패키지는 src 폴더의 하위 폴더에 위치한다. 컴파일이 수행되면 바이트 코드가 저장되는 bin 폴더에도 동일한 하위 폴더가 생성된다. 패키지 지정 안 할시 src 폴더 아래에 소스 파일이 바로 위치한다. 패키지를 사용하면 클래스가 저장되는 공간이 분리돼 클래스명의 충돌을 방지할 수 있다. 임포트 다른 패키지 내의 클래스를 사용하기 위한 문법 요소. ※ 프로그램이 동작할 떄일반적으로는 자신의 패키지 내부에 위치한 클래스만 사용할 수 있다. ..

JAVA/공부 2022.07.02

클래스 내부 구성 요소

필드 필드 : 클래스에 포함된 변수. 객체 속성값 지정 가능. -> 클래스 중괄호에 포함 -> 힙에 저장 지역 변수 : 메서드에 포함된 변수. -> 메서드 중괄호에 포함 -> 스택에 저장 -> 둘이 어떤 중괄호에 포함되었는지에 따라 구분 가능 · 필드와 지역변수의 차이점 ①. 생성되는 메모리 위치가 다르다. 스택 메모리에 저장되는 변수는 시간이 지나면 JVM이 알아서 삭제하지만 힙 메모리 객체 안에 저장되는 필드는 객체가 사라지지 않는 한 삭제되지 않는다. - 어떠한 참조 변수도 객체를 가리키지 않을 때 객체가 삭제된다. 프레임 : 1개의 메서드 안에 선언된 모든 지역 변수들의 집합 ②. 초깃값 필드는 초기화하지 않아도 강제로 초기화된다, 지역변수는 강제 초기화되지 않기 때문에 직접 초기화하지 않으면 저..

JAVA/공부 2022.07.02

클래스와 객체

객체 : 사용할 수 있는 실체 클래스 : 객체를 만들기 위한 설계도 ※ 클래스를 쓰는 이유 변수 < 배열 < 구조체 < 클래스 · 변수 : 다양한 형태의 데이터를 저장하게 해 가각의 데이터를 저장하는 문법 요소 · 배열 : 같은 자료형인 변수를 묶어서 관리 가능한 문법 요소 · 구조체 : 서로 다른 자료형을 묶어서 관리 가능한 문법 요소 · 클래스 : 다양한 자료형의 데이터를 묶어서 관리하기도 하지만 데이터 처리하는 다양한 기능도 함께 관리하는 문법 요소 클래스/인터페이스 일반메서드/추상메서드 클래스 문법) class 클래스명{ //.. } package ...;//패키지 import ...;//임포트 class A {//외부 클래스 int a;//필드 A() {...}//생성자 double abc() ..

JAVA/공부 2022.07.02

참조 자료형

배열 배열 : 동일한 타압의 데이터를 순차적으로 메모리에 확보할 수 있는 자료구조 장점 : (루프문을 이용해서) 일괄처리가 가능하다. 생성할 때 크기를 지정해야 하고, 한 번 크기를 지정하면 절대 변경할 수 없는 특징이 있다. -> 배열 선언과 더불어 객체 생성에도 적용된다. 배열 선언) int [ ]arr; 배열 선언하면 스택 메모리에 변수 공간만 생성하고 그 안은 비운 채로 있다. 배열의 실제 데이터인 객체를 생성하지 않았기 때문이다. 따라서 빈 공간을 null로 둘 수 있다. null은 힙 메모리 위치를 가리키고 있지 않다는 의미로 연결된 데이터가 없다는 뜻이다. 배열 선언 및 객체 생성, 대입) int [ ]arr = new int[4]; reference variable arr에 int형 배열 ..

카테고리 없음 2022.07.02

배열 성적 처리 프로그램

2022.06.23 한 사람 성적 처리 프로그램 입력 : 이름, 국어, 영어, 수학 연산 : 총점, 평균 출력 : 이름, 국어, 영어, 수학, 총점, 평균 //변수 선언 아래 세 항목은 바꾸지 않는다. String name; int[]score; float avg; Scanner sc = new Scanner(System.in); //메모리 할당 및 입력 System.out.println("성적 처리 프로그램"); System.out.print("이름을 입력하세요 : "); name = new String(sc.next()); System.out.println("국어, 영어, 수학순으로 성적을 입력하세요."); score = new int[4]; for(int i=0; i

JAVA/공부 2022.06.26

진수 변환

2진수↔8진수 2→8 ①2진수를 오른쪽부터 3자리씩 묶는다 ex) 0001 0101(2) → 000 010 101 ②묶어준 영역을 10진수로 표현한다 ex) 000 = 0, 010 = 2, 101 = 5 ③구한 수들을 더하지 말고, 영역 순서대로 합친다. ∴ 25(8) 8→2 ①8진수 한 숫자당 2진수의 3자리 영역으로 간주한다. ex) 60(8) → 6 = 110, 0 = 000 ②구한 2진수 표현을 (숫자로 인식해서 더하지 말고 문자처럼 취급해서) 순서대로 영역을 합쳐준다. ex) 110 000(2) 2진수↔10진수 2→10 ①순서대로 2의 n제곱 해준다. (n은 숫자의 갯수, n>=0) ex) 0110 0011(2) (보기 편하게 4개씩 끊어준 것) 2진수 0 1 1 0 0 0 1 1 변환식 2진수..

IT/공부 2022.06.24

제어문

제어문 : 프로그램 실행 순서를 사용자가 임의로 바꿀 수 있게 해주는 것 선택 제어문 - if, switch 반복 제어문 - while, for, do~while 제어 키워드 : break, continue if문 · 단일 if문 조건식이 true일 때 중괄호 안을 실행하고 조건식이 false일 때는 중괄호 안을 실행하지 않는다. if(5>3) { System.out.println("출력"); //실행됨 } boolean bool=false; if(bool) { System.out.println("출력1");//실행 안 됨 } 중괄호 미작성 시 하나의 실행구문만 포함시킨다. if(1>2) {//중괄호 미 작성 시 컴파일러가 자동으로 하나의 구문 포함시킴 System.out.println("출력1"); }..

JAVA/공부 2022.06.24
반응형