반응형 Java (자바)28 쉽게 따라하는 Java (자바) 독학 _ 다형성 (Polymorphism) Java (자바) 독학 제어문 _ 다형성 (Polymorphism) 1. 다형성 (Polymorphism)이란? - 하나의 객체나 메소드가 여러 가지 형태를 갖는 것 - Interface와 함께 많이 사용됨 - 필수 조건 1) 상속 관계 2) 메소드 오버라이딩 3) 업캐스팅 - 업캐스팅 (up casting): 부모 클래스를 호출하고 자식 클래스로 초기화하는 것 부모클래스 부모변수명 = new 자식클래스(); ** 자식 클래스 내부의 객체 등에는 접근 불가능 - 다운캐스팅 (down casting): 업캐스팅 한 부분은 실제 사용 시점에서 자식 클래스로 형변환시켜야 함 ((자식클래스)부모변수명).객체, 메소드 등..; 2. 다형성(Polymorphism) Test Class Name: Polymorphi.. 2022. 12. 19. 쉽게 따라하는 Java (자바) 독학 _ 인터페이스 (Interface) Java (자바) 독학 제어문 _ 인터페이스 (Interface) 1. 인터페이스 (Interface) - 다른 클래스의 틀이 되거나 중간 매개 역할을 하는 일종의 추상 클래스 - 객체를 생성하지 못함 - 구현(inplements)을 위해 사용 - 부모 클래스는 각 클래스당 1개만 확정받을 수 있지만, 부모 인터페이스는 여러 개 구현 가능 - 특정 클래스가 구현해서 해당 메소드를 재정의(오버 라이딩)해서 사용해야 함. - 변수를 선언할 때 맴버 변수(대입이 가능한 변수)를 선언할 수 없음 - 변수를 선언할 경우에는 상수 (constant)로 갖을 수 있음 - e.g. class: private int age; interface: public static final int AGE = 10; ** final.. 2022. 12. 18. 쉽게 따라하는 Java (자바) 독학 _ 메소드 오버로딩 (Overloading), 오버라이딩(Overriding) Java (자바) 독학 제어문 _ 메소드 오버 로딩 (Overloading), 오버 라이딩(Overriding) 1. 메소드 오버 로딩 (Overloading) - 메소드의 이름, 리턴 타입이 동일한 상황에서 매개변수의 개수 혹은 타입이 다른 경우 - 이름이나 리터 타입이 다른 경우 어떤 메소드를 호출해야 하는지 정확하지 않기 때문에 오버 로딩 불가능 - 정확히 어떤 메소를 호출해야 하는지 구별 가능하도록 해야 사용 가능 2. 오버 로딩 (Overloading) Test Class Name: OverTest_01 public static void main(String[] args) 체크 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 public class.. 2022. 12. 16. 쉽게 따라하는 Java (자바) 독학 _ 상속 (Inheritance) Java (자바) 독학 제어문 _ 상속 (Inheritance) 1. 상속 (Inheritance) - 이미 존재하는 클래스의 기능 혹은 데이터를 받아서 사용하는 것 - 부모 클래스 (Super class): 상속을 하는 클래스 - 자식 클래스 (Sub class): 상속받는 클래스 - protected, public 변수는 상속 가능 / private와 생성자는 상속 불가능 - super();를 이용하여 부모 클래스의 기본 생성자 호출 - override 가능 ** override란 부모로부터 상속 받은 매소드의 일부를 수정하는 개념 - 모든 클래스의 최상위 클래스는 Object라는 클래스로 자동 설정되어 있음 - class 앞에 final을 붙이면 해당 class는 상속 할 수 없음 ** 지역변수 앞.. 2022. 12. 14. 쉽게 따라하는 Java (자바) 독학 _ 생성자 (Constructor) Java (자바) 독학 제어문 _ 생성자 (Constructor) 1. 생성자 - 클래스의 멤버 변수를 메모리에 생성하는 역할 - 개발자가 명시적으로 생성자를 만들지 않으면 자바가상머신(JVM)이 생성자를 자동으로 생성 - 리턴 타입이 없음 - 생성자는 오버로딩 (Over Loading) 가능 ** 오버로딩: 생성자 이름은 같고, 전달 인자의 개수 혹은 타입이 다르도록 만든 생성자 - 생성 방식 public 클래스명 () { }; 2. 생성자 Test Class Name: ConstructorTest_01 Class Name: ConstructorMain_01 public static void main(String[] args) 체크 ConstructorTest_01 코드 1 2 3 4 5 6 7 8 9.. 2022. 12. 13. 쉽게 따라하는 Java (자바) 독학 _ 접근 지정자 (public, private) Java (자바) 독학 제어문 _ 접근 지정자 (public, private) 1. public - class 호출 시 멤버 변수에 바로 접근 가능 2. private - 매소드를 사용하여 맴버 변수에 접근 가능 - setter: 해당 변수에 대입을 하는 메소드 - setter 선언 public void set변수명[첫글자 대문자] (int 지역변수) { 인스턴스 변수 = 지역 변수 } e.g. public void setNum (int numtest) { this.num = numtest; } - getter: 해당 변수의 값을 호출하는 메소드 - getter 선언 public int get변수명[첫글자 대문자] () { return 변수명; } e.g. public int getNum() { retu.. 2022. 12. 12. 쉽게 따라하는 Java (자바) 독학 _ 클래스 (class) Java (자바) 독학 제어문 _ 클래스 (class) 1. 클래스 - 하나의 데이터 타입과 같이 처리 가능 - 클래스 호출 방법 클래스명 변수명 = new 클래스명(); ** 다른 클래스를 호출할 때에는 두 클래스 모두 같은 프로젝트에 위치하도록 설정 2. 클래스 Test Class Name: ClassTest_01 Class Name: ClassTest_02 public static void main(String[] args) 체크 ClassTest_01 코드 1 2 3 4 5 6 7 8 9 10 public class ClassTest_01 { public String name = "Ecoder"; public void sayhi (){ System.out.println("반갑습니다!"); } } .. 2022. 12. 11. 쉽게 따라하는 Java (자바) 독학 _ 지역 변수 (local variable) & 인스턴스 변수 (instance variable) & 클래스 변수 (Class variable) Java (자바) 독학 제어문 _ 지역 변수 (local variable) & 인스턴스 변수 (instance variable) & 클래스 변수 (Class variable) 1. 지역 변수 (local variable) - {} (특정지역) 안에서 선언된 변수 - 해당 지역에서 우선권을 갖음 - 같은 지역에서는 동일한 이름으로 중복 선언 불가능 - 해당 지역이 닫히면 더 이상 접근 불가능 e.g. void test { String localV; --> 지역 변수 } 2. 인스턴스 변수 (instance variable) - 멤버 변수 - 클래스 에서 선언된 변수 - 클래스 생성 후 호출 가능 *호출 형태: 클래스명 변수명 = new 클래스명(); *e.g. test t1 = new test(); e.g.. 2022. 12. 8. 쉽게 따라하는 Java (자바) 독학 _ 메소드 (method) Java (자바) 독학 제어문 _ 메소드 (method) 1. 메소드 (method) - 코드를 하나의 단위로 묶어 만들어 놓은 것 - 메소드는 클래스 안에 포함되어 사용 되어야 함 - 사용 형태 (접근 지정자) (키워드) 리턴 타입 매소드명 (매개변수 선언) { 매당하는 매소드가 해야할 일 작성 } e.g. public static void main (String[] args) { System.out.println("args[5]") } - 메소드 명명 규칙: 소문자로 시작, _ 와 $ 외 특수문자 사용 불가 - 메소드는 정의 후 호출하면 사용이 가능함 - 작업 후 호출했던 곳으로 반환(리턴) 값을 가지고 온다. - 리턴 타입 void: 리턴하는 데이터가 없음 자료형 : 해당 자료형에 해당하는 데이터를.. 2022. 12. 6. 쉽게 따라하는 Java (자바) 독학 _ 2차원 배열 Java (자바) 독학 제어문 _ 다차원 배열 1. 2차원 배열 - 배열에 배열을 더해 행렬을 만드는 개념 - 일전에 언급한 대로 자바의 경우 시작을 0에서부터 시작함 그러므로 수학의 행렬과는 시작 번호만 다름 e.g. 수학: 3*2 행렬 1행 1열 ~ 3행 2열 자바: 3*2 2차원 배열 0행 0열 ~ 2행 1열 - 사용 형태 데이터 타입 [] [] 변수명 = new int [행 개수][열 개수]; e.g. int [][] array = new int [3][2]; - 초기화 방법 1) 선언과 동시에 int[][] array = {{1,2}, {3,4}, {4,5}}; 2) 선언 후 변수 각각 초기화 int [][] array = new int [3][2]; array [0][0] = 1; array .. 2022. 12. 6. 쉽게 따라하는 Java (자바) 독학 _ 배열 (Array) Java (자바) 독학 제어문 _ 배열 (Array) 1. 배열 (Array) - 동일한 데이터 타입 여러 개를 한 번에 담는 변수 - 기초 자료형 x - 참조 자료형 - 사용 형태 데이터 타입 [] 변수명 = new 데이터 타입[리스트 크기]; e.g. int[] numbers = new int[5]; - 초기화 방법 1) int[] iary = new int[]{1, 2, 3, 4, 5}; 2) int[] iary = {1, 2, 3, 4, 5}; - 리스트 값 불러오는 방법 배열 변수명 [배열 번호] e.g. int[] numbers = new int[5]; numbers[0]; ~ numbers[4]; ** 자바에서는 배열을 불러올 때 0번부터 시작함 (5개 크기의 배열을 만들면 0~4까지 5개가.. 2022. 12. 6. 쉽게 따라하는 Java (자바) 독학 _ 기타 문법 (break, continue, exit) Java (자바) 독학 제어문 _ 기타 문법 (break, continue, exit) 1. break - break문은 작성된 조건문 혹은 반복문 한 개를 벗어나도록 함 - 형태 break; 2. continue - continue문은 작성된 부분 아래의 코드를 1회 실행하지 않음 - 형태 continue; 3. exit - 자바 가상머신 자체를 종료하는 코드 - 코드 실행 시 모든 작업이 종료됨 - 형태 System.exit(0); 4. Ect Test Class Name: EctTest_01 public static void main(String[] args) 체크 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 .. 2022. 12. 6. 쉽게 따라하는 Java (자바) 독학 _ 제어문 _ 반복문 (for) Java (자바) 독학 제어문 _ 반복문 (for) 1. 반복문 for - 조건에 맞는 경우 반복적으로 명령을 수행 - 조건에 맞지 않는 경우 명령을 수행하지 않음 - 몇 번 반복해야 하는지 정확히 알 때 사용 - for문 사용 형태 for (제어 변수 선언 및 초기화; 조건문; 변수 값 변환 및 대입) { 반복할 문장 } e.g. for ( int i = 0; i >10 ; ++i ) { System.out.println(i); } 2. 반복문 for Test Class Name: ForTest_01 public static void main(String[] args) 체크 **변수 num에 대한 !(Factorial) 값 구하기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1.. 2022. 12. 6. 쉽게 따라하는 Java (자바) 독학 _ 제어문 _ 반복문 (while) Java (자바) 독학 제어문 _ 반복문 (while) 1. 반복문 while - 조건에 맞는 경우 반복적으로 명령을 수행 - 조건에 맞지 않는 경우 명령을 수행하지 않음 - 정확히 몇 번 반복해야 하는지 모를 때 사용 - while문 관련 명령어 1) do: 무조건 1회 명령을 수행 2) while: 조건에 맞는 경우 명령을 수행 - while문 관련 명령어 조합 (2가지) 1) while 단독 사용 2) do + while - while문 사용 형태 1) while 단독 사용 while (조건식) { 명령문 들... } 2) do + while --> 조건식에 맞는 경우 do 블록에 있는 명령문 실행 do { 명령문 들... } while (조건식); 2. 반복문 while Test Class Nam.. 2022. 12. 6. 쉽게 따라하는 Java (자바) 독학 _ 제어문 _ 조건문 (switch - case) Java (자바) 제어문 _ 조건문 (switch - case) 1. 조건문 switch - case - 특정한 경우에 맞는 경우(case)가 있다면 명령을 수행 - 맞는 경우가 없다면 default 실행 - switch - case문 사용 형태 switch (정수 or 정수식 or 문자열) { case 값 1: 실행문들 break; case 값 2: 실행문들 break; default: 실행문들 } 2. 조건문 switch - case Test Class Name: SwitchTest_01 public static void main(String[] args) 체크 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 public class Switc.. 2022. 12. 6. 쉽게 따라하는 Java (자바) 독학 _ 제어문 _ 조건문 (if) Java (자바) 제어문 _ 조건문 (if) 1. 조건문 if - 주어진 조건에 따라 해당 조건이 참(true) 일 때 명령을 수행 - if문 관련 명령어 1) if: 해당 조건이 true일 때 명령을 수행 2) else if: 위의 조건들이 모두 false이고, 해당 조건이 true일 때 명령 수행 3) else: 위의 조건들이 모두 false일 때 명령 수행 - if문 관련 명령어 조합 (3가지) 1) if 단독 사용 2) if + else 3) if + else if + else - if문 사용 형태 if (조건식1) { true일때 수행할 작업들 } else if (조건식 2) { 조건식 1이 false이고 조건식 2가 true일 때 수행할 작업들 } else if (조건식 3) { 조건식 1,2.. 2022. 12. 6. 쉽게 따라하는 Java (자바) 독학 _ 3항 연산자 Java (자바) 3항 연산자 1. 3항 연산자 - 3항 연산자는 조건 연산자로 해당 조건의 참(true), 거짓(false)에 따라 다른 값을 반환 - 사용 형태: 조건식 ? 식 1 (조건식이 참 일 때 반환) : 식 2 (조건식이 거짓 일 때 반환) 2. 3항 연산자 Test Class Name: ConditionalOperatorTest_01 public static void main(String[] args) 클릭 1 2 3 4 5 6 7 8 9 10 11 12 13 public class ConditionalOperatorTest_01 { public static void main(String[] args) { int x = 3; int y = 9; System.out.println((x > 6.. 2022. 11. 27. 쉽게 따라하는 Java (자바) 독학 _ 데이터 입력 받기(Scanner), 형식화 된 출력문 (printf) Java (자바) 데이터 입력받기(Scanner), 형식화된 출력문 (printf) 1. Java 데이터 입력받기 - 자바의 경우 Scanner 클래스를 이용 - 클래스 선언 형태 Scanner 변수명 = new Scanner(System.in); ** 저는 변수명을 scanner로 사용하지만 sc나 keyin을 사용하는 분들도 계십니다. - 클래스 Import Scanner 클래스는 다른 클래스에서 가져와서 사용하는 명령어로, 우리가 생성한 클래스에서 사용하기 위해 Import를 해야 한다. (Import 방법: import java.util.Scanner; 를 작성 Eclipse에서는 Scanner 선언 후 Ctrl + Shift + O 입력) - 클래스 사용 형태 int a = scanner.nex.. 2022. 11. 27. 이전 1 2 다음 반응형