JAVA/java 공부 41

[JAVA] 업캐스팅/ 다운캐스팅

public static void main(String[] args) { // Animal1 hAnimal = new Human(); //Human객체를 Animal의 기준으로 생성 Animal1 tAnimal = new Tiger1(); //자식객체를 부모객체의 기준으로 생성 Animal1 eAnimal = new Eagle(); //========================================================================== // //hAnimal.read는 호출이 x //hAnumal이 Animal1으로 부모변수로 생성되었기때문에 //-> Animal1이 가지고 있는 것만 가져오기(오버라이딩 가능) //해결: 다운라이딩 (instanceof를 사용하여 나의 부..

JAVA/java 공부 2023.03.26

[JAVA] 다형성 (객체지향프로그램 특징)

다형성(Polymorphism) : 객체 지향 프로그래밍에서 매우 중요한 개념 중 하나 ⇒ 자바에서는 메소드 오버로딩(Overloading) / 메소드 오버라이딩(Overriding)을 통해 다형성을 구현 메소드 오버로딩(Overloading) : 같은 이름의 메소드를 매개변수의 타입, 개수, 순서 등을 다르게하여 여러 개 만드는 것. = 즉, 같은 이름의 메소드가 서로 다른 동작을 하게 됩니다. public class OverloadingExample { public int add(int x, int y) { return x + y; } public int add(int x, int y, int z) { return x + y + z; } public double add(double x, double ..

JAVA/java 공부 2023.03.26

[JAVA] 객체 지향 프로그램의 4가지 특징

객체지향프로그램 : 프로그램을 독립된 단위 객체들을 모아서 처리하는 모임 각각의 객체는 메시지를 주고 받으면서 데이터를 처리함(리턴,매개변수) 특징 1. 추상화 (Abstraction) - 핵심적인 코드만 보여주기 - 인터페이스와 구현을 분리 - 불필요한 부분을 숨김 2. 캡슐화(Encapsulation) - 데이터 보호 (정보은닉) // 정처기에서 필수문제 - 멤버변수(필드)와 메서드를 하나로 묶는 것 - 멤버변수(필드)는 숨기고 메서드로 접근하도록 함 - 은닉화: 객체의 내부 정보는 숨겨서 외부로 드러나지 못하게해 외부에서 데이터에 직접 접근X 3. 상속(Inheritance) - 코드 재사용(확장) - 클래스를 상속받아 수정하여 사용하게 되면 중복코드를 줄일 수 있음 4. 다형성(Polymorphi..

JAVA/java 공부 2023.03.26

[JAVA] ArrayList

arraylist : 배열의 길이와 상관없이 객체 추가 가능한 배열 ArrayList 배열 이름 = new ArrayList(); 주요 메서드 add(자료형 e) : 요소를 배열에 추가 int size() : 요소 전체 개수 get(int index) : index 위치에 있는 배열의 요소 값 remove(int index) : index 위치에 있는 요소 값 제거 및 반환 isEmpty() : 배열이 비어있는지 확인 → true/false 배열 복사 : System.arraycopy( 구배열, 시작번지, 새배열, 시작번지, 개수 ) ; 출력 //1. for문 이용 for(int i=0; i

JAVA/java 공부 2023.03.26

[JAVA] 반복문 while문 / do-while 문

while문 : 조건 식이 true일 경우에는 계속 반복 조건 식의 범위가 분명하지 않은 경우에 사용 (조건 식이 앞에 있음) int i =0; // 초기값 while (조건식) { 실행 문; // 단,조건 식이 false가 될 수 있는 구문을 꼭 포함!! 증감식; } do~while문 : 조건 식이 한번이라도 실행되어야 하는 경우 사용 do { 실행 문; }while(조건문); //조건 식이 필수 사용 예시 Scanner scan = new Scanner(System.in); char ch; do { System.out.println("문자를 입력해주세요.: "); ch = scan.next().charAt(0); if(ch == 'y' || ch =='Y') { System.out.println("y..

JAVA/java 공부 2023.03.26

[JAVA] 반복문 for문 / break / continue

반복문 : 규칙적인 일을 반복적으로 해야하는 경우 사용 for문 for ( 초기화; 조건식; 증감연산식;) { 실행문; } 반복 순서 : 초기화 - 조건식 - 실행문 -> 증감연산식 - 조건식 - 실행문 -> 증감연산식 (반복) 1. 초기화 조건식이나 실행문에서 사용하는 변수를 초기화, 처음 한번만 실행 (생략 가능) 시작하는 값 설정 ( 증감변수 i, j 이용) 1부터 시작 ( i=1 ) 2. 조건식 반복문의 반복을 결정하는 식 (참=반복, 거짓=그만) (생략 가능/생략하면 true로 무한 반복) 끝나는 값 설정 10까지 ( i ≤ 10 ) ⇒ i가 11 되면 반복 종료 3. 증감연산식 조건식에서 사용하는 변수를 증가/감소 시켜서 반복 횟수 결정 (생략 가능) 1씩 증가 : i = i + 1, i++ ..

JAVA/java 공부 2023.03.26

[JAVA] 배열 [ ]

배열 : 같은 타입, 같은 의미를 가지는 변수들의 집합 (참조 변수) [ ] : 인덱스 연산자 = 배열 요소가 저장된 메모리의 위치를 찾아주는 기능 반복문 이용 가능, 관리가 용이, 선언 이후 배열 값 변경이 가능 배열 선언 1. 배열 선언 타입[ ] 배열이름; 타입 배열이름[ ]; 2. 배열 선언 및 초기화 (바로 생성) 타입[ ] 배열이름 = new 타입 [ 길이 ] ; 타입 배열 이름[ ] = new 타입 [ 길이 ] ; 가장 일반적 선언 [ ] 길이가 공백일 경우 = 0으로 생성 타입 [ ] 배열 이름 = new 타입 [ ] { 값, 값, 값, 값, 값} ; 타입 [ ] 배열 이름 = {값, 값, 값, 값, 값} ; 선언과 동시에 초기화가 가능한 경우 사용 (바로 사용) 주의 사항 배열의 시작번지..

JAVA/java 공부 2023.03.25

[JAVA] class 클래스와 객체 : Static 변수 , 변수 유효 범위

Static 변수 ( 정적 변수 , 클래스 변수 ) 클래스에서 공통적으로 사용하는 변수 = ' static ' 변수로 선언 프로그램이 실행되어 메모리에 올라갔을 경우, 단 한번 공간이 할당 값을 모든 인스턴스가 공유 위치 : 클래스 내부에 선언 + 변수 선언시 자료형 앞에 위치 ex) static int num; 변수 유효 범위 1. 지역 변수 ( = 로컬 변수 ) 함수나 메서드의 내부에서 선언 스택 stack 메모리에 생성 함수가 호출되면서 생성 ~ 함수 종료시 소멸 하나의 함수에 선언한 지역 변수 = 타 함수에서 사용 불가 2. 멤버변수 ( = 인스턴스 변수 ) 클래스 내 선언 힙 heap메모리에 생성 인스턴스 생성 시 생성 ~ 가비지 컬렉터가 메모리 수거시 소멸 클래스의 어느 메서드에나 사용 가능 ..

JAVA/java 공부 2023.03.25

[JAVA] class 클래스와 객체 : final (수정이 불가능한 상수)

final = 클래스, 변수, 메서드 붙일 수 있음 사용 final 멤버 변수 : 상수 (수정 불가) final 멤버 메서드 : 오버라이딩(@Overring) 불가능 = 타인이 만든 메서드를 내 마음대로 바꿔 재사용x final 클래스 : 상속 불가능 + 부모 클래스 불가능 초기화 방법 우선 순위 : 기본값 모든 사람이 사용 private final static String place; => 모든 사람이 사용 + 상수 적용(변경 불가) 초기화 블럭 : { } 멤버변수 초기화 ..

JAVA/java 공부 2023.03.25