본문 바로가기
반응형

Java, JSP32

[Java/자바] 추상메소드와 추상클래스 ⚡️추상메소드 일반적으로 부모클래스에서 상속을 받으면 이미 존재하는 메소드를 그대로 사용하거나 오버라이딩해서 자식 클래스에 알맞게 사용한다. 추상메소드 같은 경우, 구현부 없이 선언하여 상속받은 자식클래스에서 메소드의 오버라이드를 강제한다. 아래와 같이 서브 클래스에서 추상 메소드를 재정의하지 않을 경우 에러 메세지가 뜨는 모습을 볼 수 있다. ⚡️추상클래스 추상클래스는 하나 이상의 추상 메소드를 지니고 있는 클래스를 지칭한다. 추상클래스와 추상메소드를 생성하는 방법은 아래와 같다. abstract class 클래스명{ abstract void 메소드명(); // {} 구현부 생략 } 추상메소드가 클래스에 포함되어 있을 경우 abstract 키워드는 클래스 생성시 꼭 필요하며 추상클래스라 하더라도 일반 .. 2021. 12. 31.
[Java/자바] final 의미와 사용법 ⚡️final 자바에서 final은 변경 불가의 의미를 갖는다. 즉 final을 사용하게 된다면 뒤따라 오는 것들은 상수처럼 사용할 수 있다. 그럼 키워드가 어떻게 사용되는지 알아보자. final 변수 final 메소드 final 클래스 📌 final 변수 변수 앞에 final 키워드가 사용되면 변경 불가능한 변수, 즉 상수로써 이용된다. 만약 final 변수의 값을 다시 지정해주려 한다면 아래와 같이 에러가 발생할 것이다. public class FinalValueEx { public static void main(String[] args) { final int finalValue = 0; finalValue = 1; finalValue = 2;// 에러 } } 그렇지만 final 변수가 클래스에서 생.. 2021. 12. 30.
[Java/자바] 다형성과 오버라이드, 캐스팅 ⚡️다형성(Polymorphism) 다형성이란 하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미한다. 자바에서는 이러한 다형성을 부모 클래스 타입의 참조 변수로 자식 클래스 타입의 필드나 메소드를 참조할 수 있도록 하여 구현하고 있다. 다형성을 구현하기 위해서는 자식 클래스가 부모 클래스의 메소드나 변수를 오버라이딩 하거나 자식 클래스가 부모 타입으로 업캐스팅하여 구현할 수 있다. 📌 오버라이드(Override), 오버라이딩(Overriding) 오버라이드는 사전적 의미로써 위에 덮어쓰다라는 뜻을 갖는다. 단어의 의미대로 상위 클래스에서 정의된 변수와 메소드를 하위 클래스에서 입맛대로 변경해 재정의하는 것이다. 결국 부모 클래스의 틀은 가져가되 자식 클래스의 상황에 맞는 기능을 수행토록 하는 것이.. 2021. 12. 29.
[Java/자바] 입력 BufferedReader와 Scanner의 차이 ⚡️알고리즘 풀이 속도 차이 백준에서 자바로 같은 문제를 풀어도 상위권 풀이들과 비교하면 3~4배의 속도 차이를 보인다. 이유는 간단했다. 나는 입력으로 Scanner를 상위권 풀이는 BufferedReader를 사용했다는 차이가 있다. 사소한 방법의 차이이지만 결과에선 큰 격차를 보이는 이 둘의 다른 점이 무엇인지 궁금해졌다. ⚡️Scanner와 BufferReader 차이 📌 Scanner Scanner는 입력 받을 때 정수 값, 소수 값, 문자 데이터도 구분지어 읽어들일 수 있다. 즉 직관적이고 사용하기에 편리하다는 장점이 있다. 그렇지만 키보드의 입력이 키를 누르는 즉시 바로 전달되기 때문에 버퍼를 사용하는 BufferReader 보다 속도 면에서 불리하다는 큰 단점이 존재한다. 📌 Buffere.. 2021. 12. 26.
[Java/자바] static 정적 변수와 메소드 static이란? 자바에서 static은 클래스 내에서 정적 필드와 정적 메소드를 정의할 때 사용하는 키워드이다. 정적 필드와 메소드를 합쳐 정적 멤버라고 부르고, 이들은 static 영역에 할당된다. 모든 객체가 정적 멤버를 어디서든지 참조할 수 있는 장점이 있지만 static영역에 있는 멤버들은 프로그램 종료시까지 메모리를 차지한다는 단점이 있어 과도하게 키워드를 남발하게 되면 성능 저하 문제가 발생할 수 있다. static 선언 필드와 메소드를 정적으로 선언하려면 앞에 static 키워드를 추가하면 된다. static int num = 0; public static void staticMethod(){ } static 필드 사용법 class StaticMember{ static int a = 0; .. 2021. 12. 23.
반응형

오픈 채팅