728x90

Programming/JAVA 24

[JAVA] 다형성(2) / 추상클래스 / 관련 예제

추상클래스 접근제한자 abstract class 클래스명{ } => abstract : 예약어 -> 추상클래스, 추상메소드 선언할 때 붙임. >> 추상 메소드가 존재하는 순간 추상 클래스로 정의됨 abstract 라는 예약어를 사용해서 정의 해야함. 객체 생성이 불가능하다. 부모클래스 구실은 가능(다형성 적용 가능) 추상클래스 == 추상메소드 + 일반필드 + 일반메소드 => 추상메소드가 없어도 추상클래스로 정의 가능 => 개발자의 역량 public abstract class Sports { private int people; public Sports() {} public Sports(int people) { this.people = people; } public int getPeople() { retur..

Programming/JAVA 2023.12.27

[JAVA] 다형성 / 형변환 / 관련 예제

다형성 부모 클래스로부터 상속받은 자식클래스 타입의 객체를 부모틀래스 타입으로 형변환하여 (= 동일한 자료형이 된다.) 한 번에 다룰 수 있다. => 형변환을 하면 배열을 사용할 수 있음 (배열은 같은 자료형끼리만 묶어서 보관이 가능하기 때문에) >> 다형성을 사용하는 이유 1. 부모타입의 객체 배열로 다양한 자식객체들을 받을 수 있다. => 부모타입 하나로 자식객체들을 모두 다룰 수 있음 2. 메소드의 개수가 줄어든다 결론 : 다형성을 이용할 경우 소스코드의 길이가 줄어들어서 효율성이 높아짐 public class PolyRun { public static void main(String[] args) { // =(대입연산자)의 특징 // 양변의 자료형이 같아야 한다. //1. 부모꺼는 자식꺼 자식꺼는 ..

Programming/JAVA 2023.12.27

[JAVA] 상속 / 오버라이딩 / 관련 예제

상속 매 클래스마다 중복된 필드, 메소드들을 단 한 번 또는 하나의 클래스(부모클래스)로 정의해둔 후 해당클래스의 내용을 가져다 쓰는 개념. 기존의 클래스를 이용해서 새로운 클래스를 만든다. >> 상속의 특징 - 클래스 간의 다중상속 불가능(단일 상속만 가능) - 명시되어 있찌는 않지만 모든 클래스는 object 클래스의 후손이다. (모든 클래스란? 내가 만든 클래스, 자바에서 이미 제공하고 있는 클래스) >> 상속의 장점 - 중복된 코드를 공통적으로 관리할 수 있음 => 새로운 코드를 작성하하거나 수정할 때 용이 => 보다 적은 양의 코드로 새로운 클래스를 만들 수 있음 - 프로그램의 생산성과 가독성을 높이고, 유지보수에 크게 기여함. 오버라이딩 - 상속받고 있는 부모클래스의 메소드를 자식클래스에서 재..

Programming/JAVA 2023.12.27

[JAVA] 필드(Field) / 메소드(Method) / 관련 예제

필드(Field) 클래스를 구성하는 요소 중 하나로 클래스 내부지만 메소드 밖 영역에 정의한다. 어떠한 데이터를 저장하기 위한 역할(변수) 변수 구분 - 전역변수 : 클래스 영역에 바로 선언하는 변수(public static) - 지역변수 : 클래스 영역 내의 특정구역({ }) => 메소드, for문 등등... for(int i=0; 조건식; 증감식;){} => 초기식에서 선언된 i도 지역변수 1) 전역변수 - 멤버 변수(인스턴스 변수, 필드) 생성 시점 : new 키워드를 사용하면 해당객체를 생성하는 순간 메모리 영역에 할당 => heap영역 소멸 시점 : 객체가 소멸될 때 - 클래스 변수(static 변수) 생성 시점 : 프로그램 실행과 동시에 => 해당 객체가 생성이 안돼도 무조건 프로그램 실행과 ..

Programming/JAVA 2023.12.22

[JAVA] 객체지향 프로그래밍 / setter, getter / 캡슐화 encapsulation

객체지향 프로그래밍 현실 세계에서 독립적인 존재(객체) 간의 상호작용을 프로그래밍 언어를 통해 코드로 구현하는 것. 구현하고자 하는 프로그램 상의 객체(변수)를 만들기 위해서는 클래스라는 틀을 먼저 만들어야 한다. 클래스란? 각 객체들의 속성들을 담아내는 그릇 또는 틀 같은 존재 * 필드부: 각 정보를 담는 부분 접근제한자 자료형 필드명; * 메소드부: 각 기능을 구현하는 부분 접근제한자 반환형 메소드명(매개변수){ 실행할 코드; } - 접근 제한자: 호출할 수 있는 범위를 제한해준다. - 반환형: 메소드의 결과값의 자료형을 지정해준다.( void: 돌려줄 값이 없음) - 매개변수: 메소드 호출시 입력값으로 넣어주는 변수. 해당 메소드 실행중에만 사용가능한 변수. 생략가능 - setter 메소드 : 데이..

Programming/JAVA 2023.12.22

[JAVA] 배열(Array) / ArrayIndexOutofBoundsException / arraycopy() / copyOf() / clone() / 관련 예제

배열(Array) - 하나의 공간에 여러 개의 값을 담을 수 있다. 단, 같은 자료형의 값들이어야 한다. - 배열의 각 index 자리에 실제 값이 담기며, index는 0부터 시작한다. /* 배열 선언 */ int arr[]; int[] arr; // => 주로 많이 사용 /* 배열 할당*/ // 배열에 몇 개의 값이 들어갈지 배열의 크기를 정해주는 과정 // 지정한 개수만큼 값이 들어갈 공간이 만들어짐 int[] arr = new int[5];// 선언과 동시에 할당(참조형:new) arr[0] = "값1"; arr[1] = "값2"; ... arr[4] = "값5"; ArrayIndexOutofBoundsException => 배열의 인덱스 범위를 벗어났다. pulic void arrayMethod..

Programming/JAVA 2023.12.22

[JAVA] 반복문 - for문 / do-while문 / Math.random() / 구구단 출력

반복문 for문 for(초기식; 조건식; 증감식){ 반복적으로 실행시키고자 하는 코드 } // 초기식 // 반복문이 시작될 때, 초기에 1번만 실행 // 반복문에서 사용할 변수를 선언하고 초기화하는 구문 ex) int i = 0; // 조건식 // 반복문이 실행된 조건을 작성하는 구문 // 조건식이 true일 경우 반복문 실행 // false일 경우 반복문을 멈추고 빠져나옴 ex) i 괄호 안에 조건식이 true일 경우 해당코드(a)를 반복적으로 실행 // => while(true): 무조건 반복 random Math 클래스의 random() 메소드 활용. random() 메소드의 결과 값: 0.0 ~ 0.999999.... Math.random(); Math m = new Math(); do-while..

Programming/JAVA 2023.12.22

[JAVA] 조건문 - if문 / if else문 / switch문 / 관련 예제

조건문 if문 if(조건식){ 조건식이 true일 경우 실행할 코드 } => 조건식의 결과가 true일 경우: {} 안의 코드들이 실행됨 => 조건식의 결과가 false일 경우: {} 안의 코드들을 건너뜀 if else문 if(조건식){ 조건식이 true일 경우 실행할 코드 } else{ 조건식이 false일 경우 실행할 코드 } if-else if문 if(조건식1){ 조건식 1이 true일 경우 실행할 코드 } else if(조건식2){ 조건식 2이 true일 경우 실행할 코드 } else { false일 경우 실행할 코드 } switch문 switch(아래에 기술할 값들과 "동등비교"를 할 대상자로 정수, 문자, 문자열){ case 값1 : 실행할 코드1; // 대상자 == 값1이 true일 경우 실..

Programming/JAVA 2023.12.22
728x90