자바

    [Java] Scanner 주의사항/ .next()와 .nextline() 차이

    ✍Scanner 사용 시 문제점 키보드 입력 시 입력 버퍼라는 곳에 임시 저장된 후 저장된 내용 중 다음 정수, 실수, 단어, 문자열을 읽어온다. ex) nextInt(), nextDouble() 등 예제 System.out.print("숫자 입력 : "); int addsize = sc.nextInt(); sc.nextLine();​ 🔎문제점 : next() 또는 nextInt() 사용 후 입력 버퍼 제일 앞에 \n이 남아있다. 그래서 다음 next() 또는 nextInt()를 쓰면 제일 앞에 남아있는 \n(빈칸)을 읽어오는 상황이 발생한다. 🔎해결법 : next() 또는 nextInt() 구문 뒤에 nextLine()을 한 번 작성하여 \n(빈칸)을 읽어오게 해 입력 버퍼에 남은 \n을 제거한다. 예..

    [Java] Polymorphism(다형성)_예제

    [Java] Polymorphism(다형성)_예제

    VO 클래스 : Car package edu.kh.poly.ex1.model.vo; public class Car { //최상위 클래스인 오브젝트를 컴파일러로부터 자동으로 상속받는다. //추상화 private int wheel; // 바퀴 개수 private String handle; private String engine; public Car() { super(); //얘도 자동생성이지만 super()를 넣어서,, 알려준다... } //매개변수 있는 생성자 자동 완성 (alt+ shift + s->o) public Car(int wheel, String handle, String engine) { super(); this.wheel = wheel; this.handle = handle; this.eng..

    [Java] Polymorphism(다형성)_ 업·다운 캐스팅, 인터페이스, 추상클래스·메서드, 바인딩

    [Java] Polymorphism(다형성)_ 업·다운 캐스팅, 인터페이스, 추상클래스·메서드, 바인딩

    ✍Polymorphism(다형성) 객체 지향 언어의 특징 중 하나로 ‘다양한 형태를 나타내는 성질’이라는 뜻으로 하나의 행동으로 여러 가지 일을 수행하는 개념. 상속을 이용한 기술로 부모 클래스 타입 참조변수 하나로 상속 관계에 있는 여러 타입의 자식 객체를 참조할 수 있는 기술 ➡ 자식 객체안에 부모가 있으니깐 같은 타입의 부모가 아니라 부모참조변수로 자식 객체를 참조한다. ex) 추상화, 캡슐화, 상속 같은 다양한 성질 상속(재사용, 코드길이 감소+ 유지보수) < 다형성(다형성의 전제조건은 상속이기때문에 더 큰 범위) 하나의 객체가 여러 가지 타입을 가질 수 있는 것 하나의 클래스가 메서드가 다양한 방식으로 동작 가능한 것 하나의 참조변수로 여러 객체를 두 개는 도형이라는 특징 도형 중에 원이 있다 ..

    [Java] Inheritance(상속)

    [Java] Inheritance(상속)

    ✍Inheritance(상속) 다른 클래스가 가지고 있는 멤버(필드, 메소드)들을 새로 작성할 클래스에서 직접 만들지 않고 상속을 받음으로써 새 클래스가 자신의 멤버처럼 사용할 수 있는 기능 부모클래스의 멤버(필드, 메소드)를 자식이 물려 받아 자신의 것처럼 사용하는 것 자식의 공통된 코드를 하나의 부모 클래스에 모은다. -> 상속을 구현하는데는 추상화로 자식의 공통된 코드를 중복제거 부모클래스 == 하나 (그 부모클래스를 물려받는) 자식클래스 == 여러개 부모에게 적용된 것 은 공통적으로 모든 자식에게 동일하게 적용 부모 클래스에게 규칙을 정해두면 자식들은 그 규칙을 전부 따르게 된다. 1. 상속의 목적 (부모 타입의) 클래스 재사용, 연관된 일련의 클래스들에 대한 공통적인 규약 정의 같은 부모를 둔 ..

    [Java] Inheritance(상속) 예제

    [Java] Inheritance(상속) 예제

    📝Person &Student -값을 생성하고 출력하는 예제 VO 클래스 - Person : getter/setter + 필드 정보를 한 번에 출력하는 용도의 메서드 package edu.kh.Inheritance.ex.model.vo; public class Person { //필드 private String name; private int age; private String nationality; //생성자 : 객체 생성 + 객체 생성 시 필드 초기화 + 특정 기능 수행 public Person() {} //기본 생성자 //매개변수 있는 생성자 public Person( String name, int age, String nationality ) { this.name = name; this.age =..

    [Java] OOP 4_Method(메소드), 객체 배열

    [Java] OOP 4_Method(메소드), 객체 배열

    ✍Method (메소드) 방법, 기능(Function) 수학의 함수와 비슷하며 호출을 통해 사용, 전달 값이 없는 상태로 호출을 하거나 어떤 값을 전달하여 호출을 하며, 함수 내에 작성된 연산 수행 수행 후 반환 값 / 결과 값은 있거나 없을 수 있음 ==>전달되는 값에 따라 결과가 반환된다. 총 4가지방법으로 작성가능하다 표현식 [접근제한자] [예약어] 반환형 메소드명( [매개변수] ) { // 기능 정의 } public void information() { System.out.println(studentNo); }​ 1) 접근제한자 : 필드에서 사용하던 접근제한자 4개 전부 사용가능 2) 예약어 : static abstract final 3개 사용 가능 3) 반환형 : 반환하는 값의 자료형 int, ..

    [JAVA] 분기문_break, continue

    분기문 - 가장 가까운 반복문(for, while)을 종료시키는 구문 while(true) { // 무한루프 // 반복문은 조건식이 true일 때 반복 // 항상 true == 무한 반복 == 무한 루프 } System.out.println(); //Unreachable code : 도달할 수 없는 코드 } 이러한 상황에서는 에러가 나기 때문에 분기문이 필요하다. 1) break 반복문에서는 break문 자신이 포함된 가장 가까운 반복문을 빠져나가는 구문 Scanner sc = new Scanner(System.in); int sum = 0; // 합계 저장용 변수 while(true) { // 무한루프 // 반복문은 조건식이 true일 때 반복 // 항상 true == 무한 반복 == 무한 루프 Sys..

    [JAVA|자바] 반복문 _for, while, do- while

    [JAVA|자바] 반복문 _for, while, do- while

    반복문 : 프로그램 수행 흐름을 바꾸는 역할을 하는 제어문 중 하나로 특정 문장들을 반복해서 수행하도록 함 1) for문 ( 몇바퀴 돌지 안다면 for) 구문 for(초기식; 조건식; 증감식) { 반복 수행 코드; } for(int i = 1; i

    [Java] OOP 3_Constructor(생성자)

    [Java] OOP 3_Constructor(생성자)

    ✍Constructor (생성자) 객체 생성 + 필드 초기화 + 필요 기능 수행 - 객체가 new 연산자를 통해 Heap 메모리 영역에 할당될 때 객체 안에서 만들어지는 생성된 객체의 필드값을 초기화하고 지정된 기능을 수행 하는 것이 목적. 필드 초기화 + 생성 시 필요한 기능 수행 - 생성자는 일종의 메소드로 전달된 초기값을 받아서 객체의 필드에 기록 = 일종의 기능으로 생성된 객체의 필드에 값을 집어넣는다. Korean k1 = new Korean(); ➡ Korean 클래스를 보고 새로운 객체를 만드는 기능 수행한다. ➡ () == 기능 호출 참고 파일: user 클래스, ConstructorService 1. 생성자 규칙 생성자의 선언은 메소드 선언과 유사하나 반환 값이 없으며 생성자명을 클래스명..

    [Java] OOP 2 _Class, Field (접근제한자, 예약어, 멤버·클래스 변수)

    [Java] OOP 2 _Class, Field (접근제한자, 예약어, 멤버·클래스 변수)

    ✍Class(클래스) 객체의 특성(속성, 기능)을 정의한 일종의 설계도이다. 클래스(설계도)와 객체(완성품)는 다르다 1. 클래스 선언 [접근제한자] [예약어] class 클래스명 { } [접근제한자] [예약어] class 클래스명 {} public [예약어 생략] class Student => 클래스 선언부, 클래스 시그니처 [] (대괄호) : 생략 가능(선택) (소괄호) : 무조건 생략 🔎접근제한자 - 개발하는 프로젝트 내부에서 어디서든지 사용가능한 클래스 : public, private 참고) public : 공공의, 누구나 접근 가능하다. 🔎예약어 - 대괄호로 생략도 가능하다. : abstract, final이 예약어로 들어올 수 있다. 🔎클래스명 : 항상 대문자로 시작 2. 클래스 접근제한자 p..