본문 바로가기

전체 글

(211)
Java_예외처리(1)_try-catch문 ① 예외처리란? : 예외처리란 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것이다. → 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하도록 한다. - 에러의 종류 → 컴파일 에러 : 컴파일 시에 발생하는 에러 => 구문체크, 번역, 최적화, 생략된 코드 추가 런타임 에러 : 실행 시에 발생하는 에러 => 프로그램 종료 논리적 에러 : 실행은 되지만, 의도와 다르게 동작하는 것 => 프로그램 종료X - 예외 클래스의 계층 구조 → Exception클래스들 : 사용자의 실수와 같은 외적인 요인에 의해 발생하는 예외. RuntimeException클래스들 : 프로그래머의 실수로 발생하는 예외. - 예외 처리하기 try-catch문 class JavaJungsuk_basic..
Java_객체지향언어(9)_인터페이스 ① 인터페이스 : 구현된 것이 전혀 없는 설계도, 껍데기 ↔ 추상클래스 : 일반클래스, 추상메서드 - 인터페이스 선언 interface 인터페이스이름 { public static final 타입 상수이름=값;//상수만 가능. 변수, iv, cv 불가능 public abstract 메서드이름(매개변수목록);//추상메서드 } interface PlayingCard { public static final int SPADE=4; final int DIAMOND=3;//public static final 생략가능. static int HEART=2;//public static final 생략가능. int CLOVER=1;//public static final 생략가능. public abstract String g..
Java_객체지향언어(8)_추상 클래스, 추상 메서드 ① 추상 클래스 : 추상 클래스란 쉽게 말해 미완성 설계도이다. 그렇기 때문에 객체 생성이 불가능한 클래스이다. 추상 클래스는 미완성 메서드(추상 메서드)를 포함하고 있는 클래스라는 뜻이다. - 추상 클래스 선언방법 abstract class 클래스이름 { ... } ② 추상 메서드 : 추상 메서드란 미완성 메서드 즉 구현부{}가 없는 메서드이다. → 이와 같이 미완성 상태로 남겨 놓는 이유는 메서드의 내용이 상속받는 클래스에 따라 달라질 수 있기 때문이다. - 추상 메서드 선언방법 //주석을 통해 어떤 기능을 수행할 목적으로 작성하였는지 설명한다. abstract 리턴타입 메서드이름(); - 추상 클래스로부터 상속받는 자손클래스는 오버라이딩을 통해 조상인 추상클래스의 추상메서드를 모두 구현해주어야 한다..
Java_객체지향언어(7)_instanceof연산자, 매개변수의 다형성, 객체배열 ① instanceof 연산자 - 참조변수의 형변환 가능여부 확인에 사용. 가능하면 true를 반환한다. - 반드시 형변환 전에 instanceof로 확인해야 함. FireEngine fe=new FireEngine(); System.out.println(fe instanceof Object); System.out.println(fe instanceof Car); System.out.println(fe instanceof FireEngine);//fe의 조상이라는 전제 하에 전부 true 반환. Object obj=(Object)fe;//ok Car c=(Car)fe;//ok ② 매개변수의 다형성 - 참조형 매개변수는 메서드 호출 시, 자신과 같은 타입 또는 자손 타입의 인스턴스를 넘겨줄 수 있다. - ..
Java_객체지향언어(6)_다형성, 참조변수의 형변환 ① 다형성 : 다형성이란 조상타입 참조변수로 자손 타입 객체를 다루는 것이다. class Tv{ boolean power; int channel; void power() {power=!power;} void channelUp() {++channel;} void channelDown() {--channel;} } class SmartTv extends Tv{ String text; void caption() {//내용생략} } Tv t= new Tv();//Tv인스턴스를 다루기 위한 참조변수 t 사용. SmartTv stv= new SmartTv();//SmartTv인스턴스를 다루기 위한 참조변수 stv 사용. Tv t= new SmartTv();//타입 불일치! 조상 타입의 참조변수로 자손 인스턴스 참조..
Java_객체지향언어(5)_참조변수 super, 생성자 super(), 제어자와 접근제어자 ① 참조변수 super ≒ this(는 지역변수와 인스턴스 변수 구별에 사용.) : 조상의 멤버를 자신의 멤버와 구별할 때 사용하고 객체 자신을 가리키는 참조변수이다. 인스턴스 메서드(생성자) 내에서만 존재하며 static 메서드에서는 사용 불가. class Parent { int a = 1; } class Child extends Parent { int a = 2; public String toString() { return "this: "+this.a+", super: "+super.a; } void display() { System.out.println(a); System.out.println(this.a); System.out.println(super.a); } } public class pers..
Java_객체지향언어(4)_상속, 포함관계, 오버라이딩 ① 상속 : 상속이란 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. → 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 기여한다. - 구현 방법 class Parent{//조상 클래스 int age; } class Child extends Parent {//Child는 Parent의 자손 클래스 //... } → 새로 작성하고자 하는 클래스의 이름뒤에 상속받고자 하는 클래스의 이름을 'extends'와 함께 써주면 된다. → 상속해주는 클래스를 '조상 클래스'라 하고 상속 받는 클래스를 '자손 클래스'라 한다. → Parent 클래스에 int age를 멤버변수로 추가하면 자손 클래스는 자송의 멤버를 모두 상속 받기 때문에, Child 클래스는 자동적으로 age..
Java_2차원 배열을 이용하여 평균과 등급 구하기 math, science, korean {20, 30, 85} {60, 43, 78} {86, 75, 99} {90, 60, 77} {59, 90, 50} {50, 100, 85} col(열)은 과목이고 row(행)은 학생이다. 각 과목마다 평균. 각 학생마다 평균. 전체 평균. 과목 점수별 등급 매기기 (0~30, 31~60, 61~90, 91~100) DCBA 평균에 대한 등급 매기기 (0~30, 31~60, 61~90, 91~100) 4,3,2,1 등급 public class personal_arrayAverage_Project_1 { public static void main(String[] args) { int[][] score = { { 20, 30, 85 }, { 60, 43, 78 }, {..