728x90

Programming 56

[JAVA] 예외처리 / RuntimeException / ArithmeticException / e.printStackTrace() / Arr

에러의 종류 - 시스템 에러: 컴퓨터의 오작동으로 인해 발생하는 에러 => 소스코드로 해결이 안됨 - 컴파일 에러: 프로그램 실행 전 소스코드 상의 문법적인 문제로 발생하는 에러 => 소스코드 수정으로 해결(빨간줄로 오류를 알려줌) - 런타임 에러: 프로그램 실행 중 발생하는 에러 => 소스코드 상 문법적인 문제가 없지만 발생 => 개발자가 예측 가능한 경우 제대로 처리를 안 해놓았을 경우 => 사용자의 잘못일 경우도 있음 - 논리 에러: 소스코드상 문법적인 무제도 없고, 실행했을 때도 굳이 문제가 발생하진 않지만,프로그램 의도상 맞지 않는 것(기획과 설계가 잘못되었을 경우 발생) 예외 시스템 에러를 제외한 나머지 컴파일, 런타임, 논리 에러와 같은 비교적 덜 심각한 에러들 특히 런타임에러를 주로 예외로..

Programming/JAVA 2023.12.29

[JAVA] 다형성(3) / 인터페이스 / 관련 예제

인터페이스 접근제한자 interface 인터페이스이름 { 상수필드 추상메소드 } - 상수필드와 추상메소드만으로 이루어진 추상클래스의 변형체 - 인터페이스에서 필드는 상수필드이다. - 인터페이스에서 메소드는 추상메소드이다. - 구현해야하는 게 있을 때 인터페이스에 틀만 만들어두고 상속하게 된다. - 인터페이스는 다중상속을 허용. => 메소드가 겹치더라도 최종 구현 부분은 실제 구현 클래스에서 기술하기 때문 - 추상클래스보다 좀 더 강한 규칙성, 강제성을 가진다. 추상클래스와 인터페이스 1. 공통점 - 객체 생성은 안되나, 참조변수로 사용 가능(다형성 적용 가능) - 상속하는 클래스에 추상메소드를 오버라이딩하도록 강제한다. 2. 차이점 - 추상클래스: 클래스 멤버 변수로, 함수 생성이 가능하고 추상메소드가 ..

Programming/JAVA 2023.12.27

[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
728x90