상속부모 클래스의 필드와 메소드를 자식 클래스에게 물려줌private 접근 제한을 갖는 필드와 메소드는 상속 대상이 아님default 접근 제한을 갖는 필드와 메소드는 다른 패키지에 있는 자식에게 상속 불가능자식클래스에 "extends 부모클래스" 키워드를 넣어 사용 가능 자바에서는 단일 상속만 가능 super(); 부모의 생성자 호출. 이 키워드 위쪽은 실행문이 올수없음super 키워드는 현재 만들어지고 있는 부모객체의 주소를 참조하는 키워드 이때 부모에게 기본 생성자가 있다면 자식 클래스에서는 부모 생성자를 생략할 수 있다.모든 자식은 부모 객체부터 생성되어야 하므로 super() 호출 위로 타 실행문이 올 수 없다.부모에게 기본 생성자가 존재하는 경우 자식 생성자에서는 super() 생성자를 생략할..
인스턴스 멤버객체들 마다 다른 값을 가질 수 있는 객체들 소유의 구성요소 정적 멤버해당 타입(클래스)가 고유하게 가지며 모든 객체들이 동일하게 가져야하는 값들을 정의할 때 사용하는 구성요소(클래스 소유 구성요소)객체를 생성하지 않고 클래스를 통해 사용접근할 때 클래스 소속의 구성요소이기 때문에 클래스를 통하여 접근할 수 있다.정적 필드 모든 객체가 해당 타입에서 고유한 값을 갖는 필드의 경우 정적필드로 선언생성자에서 초기화를 하지 않는다 (정적 필드는 객체 생성 없이 사용할 수 있기 때문에 생성자에서초기화 작업을 하지 않는다. 생성자는 객체 생성 후 실행되기 때문이다.)필드 선언과 동시에 초기값을 주는게 일반적정적 메소드메소드 내부에서 인스턴스 멤버를 사용하지 않는 경우 정적 메소드로 선언 (경우에 따..
클래스(class)객체를 만들 수 있는 설계도를 의미한다.객체란 자신을 표현하는 데이터(속성,필드)를 가지며 자신이 할 수 있는 행위(기능,메소드)를 가지는 실제 데이터를 의미한다.객체는 반드시 참조되어 있어야 사용할 수 있다.(변수 등)객체를 담는 변수는 "클래스변수"라고 한다.객체를 담는 변수의 타입은 객체를 생성하는 클래스이다.객체 생성할 때 반드시 new 클래스(); 를 사용하여 생성한다. 1)물리적 객체 - 실제 존재할 수 있는 객체이며 속성과 기능을 가질 수 있다. 2)추상 객체 - 실제 객체들의 개념(그룹)에 해당하는 객체를 의미하며 실제 존재할 수 없다. 자바는 class를 사용하여 필요한 객체를 생성 후 조립하여 하나의 시스템을 만들어 낸다. 클래스 선언 방법!자바 식별자 규칙을..
배열같은 데이터타입의 연속된 데이터 묶음데이터의 순서가 존재함배열의 데이터들은 들어오는 순서대로 인덱스(번호표)를 부여받게 되며 이때문에 순서를 유지할 수 있다.불필요한 변수 선언을 방지할 수 있다.같은 데이터타입의 연속된 데이터 처리가 편리해진다.길이는 고정이다. 1.배열 변수 선언 데이터타입[] 변수명 데이터타입 변수명[]int intArray1[];int[] intArray2; byte[] byteArray;String[] strArray;2.배열 데이터 생성 1)리터럴 사용 - 배열변수 선언시에만 리터럴로 생성할 수 있다. - {}(중괄호)를 사용하여 콤마 구분자로 연속된 데이터를 표현한다. String[] strArray2 = {"java","css","html"}; 2)new..
String 문자열을 다루는 참조타입heap 영역에 데이터 생성 문자열 생성 방법 : 1) 리터럴로 생성 - 같은 데이터면 같은 주소를 바라봄 2) new String("문자열") - 같은 데이터라도 다른 주소로 생성 String str1 = "java"; String str2 = "java"; String str3 = new String("java"); boolean result; result = str1 == str2; System.out.println("str1 == str2 : "+result); result = str1 == str3; System.out.println("str1 == str3 : "+result); 동등비교 연산자는 참조타입에서는 주소값을 비교하기 때문에 문자열의 값을 비교하기..
null참조타입 변수에 참조하고 있는 주소가 없음을 의미하는 초기값NullPointerException참조타입 변수에 참조 주소가 없는데 해당 변수의 참조 데이터를 사용하려 할 때 발생하는 예외String str = null;boolean result = str.equals("java");System.out.println(result);System.out.println("프로그램 종료"); 참조타입변수에 직접 데이터를 갖지 않고 별도의 주소값을 참조하는 형태의 데이터 타입을 의미함동등비교 연산자로 비교할 수 없다 -> 동등비교 연산자는 변수 안의 직접적인 값을 비교하기 때문(stack영역)문자열, 객체, 배열 ( 기본타입 : 정수, 실수, 논리 )스택 영역 : 변수 메소드 영역 : 클래스 힙 영역 ..
Scanner사용자에게 값을 입력받을 수 있음.next() : 공백인식이 안됨. 공백 이전까지의 문자만 받음.nextLine() : 한줄 단위로 받기 때문에 공백도 가능import java.util.Scanner; 을 해줘야 함. 간략하게 import java.util.*;도 가능import java.util.Scanner;Scanner scanner = new Scanner(System.in);Systehttp://m.out.print("입력>");String value = scanner.nextLine(); //개행문자 포함 next() 개행문자 안들어감System.out.println("입력값:" + value); while문반복의 조건을 알고 있는 경우 사용하는 반복문반복마다 종료 조건을 물..
-특정 실행문을 여러번 반복해서 실행해야하는 경우 사용하는 구문 -for문 -while문 -do-while문 for문반복의 횟수를 알고 있는 경우 사용for(초기식; 조건식; 증감식) { 실행문;}증감식의 경우 증감연산자나 대입연산자를 사용 num++ 또는 num+=1 순서1) 초기식 2) 조건식 3) 실행문 4) 증감식 조건식이 false가 될때까지 2,3,4 반복 1~30까지의 수에서 3의 배수만 출력for(int i = 1; i 1~50까지 반복하며 2의 배수 또는 3의 배수인 경우 출력for(int i = 1; i 1~10까지의 합을 구하기int sum = 0;for(int i = 1; i 1~100까지의 정수 중에서 3의 배수의 총합을 출력하는 코드를 작성int sum ..
switch문값으로 실행코드를 분기할 때 사용 문법) switch(값을 나타내는 변수 또는 식){ case 값1 : 실행문1 ... 실행문n break; case 값2 : 실행문1 ... 실행문n break; ... case 값n : 실행문1 ... 실행문n break; default : 실행문1 ... 실행문n } - 괄호 안의 변수 또는 식의 결과값과 일치하는 case의 실행문이 순차적으로 실행되고 정상 흐름으로 돌아온다. int day = 1; // 0 : 일요일 ~ 6 : 토요일switch(day) {case 0 : System.out.println("일요일입니다.")..
조건문 : 특정 조건에 따른 실행문을 분기하는 제어문이다. if문 조건이 참, 거짓을 판단하여 참인 경우 실행문 실행조건식은 boolean 타입의 변수 또는 식이면 모두 가능조건식이 true이면 실행문 1부터 실행문 n까지 순차적으로 실행 후 정상 실행으로 돌아옴조건식이 false이면 {} 블럭 건너뛰고 정상 실행if문의 {} 가 생략된 경우 if문 바로 아래 또는 바로 옆 실행문 하나만 if문의 실행문이 된다. 문법) if(조건식) { 실행문 1 ... 실행문 n } int age = 18;if(age > 18) { System.out.println("성인");}if(age String name = "홍길동";int score = 50;if(score >= 60) { Sys..