JAVA (33) 썸네일형 리스트형 [JAVA] 인터페이스 Interface 인터페이스 (Interface)란? 현업에서 소스코드 작성 시 클래스를 처음부터 구현하게 된다면 코드의 가독성이 떨어지고 시간이 오래걸릴 것 입니다. 또한 팀별로 각각 다른 모듈을 만들 시 팀마다 방법이 다르기 때문에 호환성도 없고 일관성도 떨어지게 됩니다. 인터페이스를 통해 기본적으로 구현해야 할 메소드에 대한 규격들을 알려준다면 훨씬 효율적일 것 입니다. 즉, 인터페이스란 특정 기능을 개발하는데 있어 공통적인 기능을 명시하고 강제적으로 구현하게끔 하는 역할입니다. 인터페이스를 사용하게 된다면 자바의 다형성을 이용할 수 있고 이를 통해 유지보수성을 높일 수 있습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 public interface usePhone { //Phone 클래스와 연동하려는.. [JAVA] 추상메소드, 추상클래스 (abstract) 추상메소드 (abstract method) 추상메소드란 선언은 되어 있으나 코드가 구현되어 있지 않은 메소드이다. 추상메소드는 abstract키워드를 선언하는 선언부만 존재하고, 구현부는 작성하지 않고 사용한다. 작성되어 있지 않은 구현부는 자식클래스에서 오버라이딩하여 사용한다. 추상클래스 (abstract class) 추상메소드를 가지고 있으면 반드시 추상클래스로 선언해야 한다. 추상클래스 선언은 abstract키워드로 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 // [추상클래스] // 객체화를 하지못하게 "강제" abstract class Shape{ // 객체생성을 위해서 사.. [JAVA] 카드 사용 프로그램 (Equals() 메소드, instanceof 연산자) class Card String name // 카드사용자 int money // 현재까지 사용한 금액 (처음에는0) boolean flag // 제한금액 여부 (F면 제한금액 없음) int limit // 제한금액 (T면 제한금액 있음) void pay(int money) // money만큼 결제 void alert() // "제한금액을 초과하여 사용할수없습니다!"라는 경고문구를 출력 --생성자--(2가지) Card("홍길동") -> 제한금액 없음 Card("홍길동",10000) -> 제한금액 있음(10000원으로 설정됨) 출력시 : ㅇㅇ님 현재까지 사용한 금액은 ㅁㅁ원입니다. 제한금액 O: xxx원 제한금액 X class CreditCard int cnt // 제한금액을 초과하는 결제 횟수를 카운팅 v.. [JAVA] 접근제어자 private (Getter, Setter 메소드) 객체 지향 프로그램에서는 데이터를 보호하기 위해서 외부에서 직접적으로 접근하는 것을 막는다. 그 이유는 외부에서 마음대로 데이터를 읽고 변경할 경우 객체의 무결성(결점이 없는 상태)이 깨질 수 있기 때문이다. 예를 들어 사람의 나이나, 자동차의 속도, 책의 페이지 수는 음수가 될 수 없다. 만약 외부에서 해당 데이터를 음수로 변경하게 될 경우 객체의 무결성이 깨지게 된다. 이러한 경우 접근제어자 private를 사용해서 필드의 직접적인 접근을 막아두고 메소드를 활용해서 받아온 데이터(매개변수의 값)을 먼저 검사하고 유효할 때만 저장할 수 있게끔 만들 수 있다. 이때 사용하는 메소드가 Getter, Setter 메소드 이다. Getter, Setter 메소드를 사용하면 객체의 무결성을 해치지 않고 데이터를.. [JAVA] 모래성 쌓기 게임 (Static) 정적(Static)이란? 정적(Static)은 고정된이란 의미를 가지고 있습니다. static이라는 키워드를 사용하여 static변수와 static메소드를 만들 수 있는데 이 둘을 합쳐서 정적 멤버(=클래스 멤버)라고 합니다. 정적 필드, 정적 메소드는 객체(인스턴스)에 소속된 멤버가 아니라 클래스에 고정된 멤버이기때문에 클래스로더가 클래스를 로딩해서 메소드 메모리 영역에 적재할때 클래스별로 관리됩니다. 따라서 클래스의 로딩이 끝나는 즉시 바로 사용할 수 있습니다. Static영역에 할당된 메모리는 모든 객체가 공유하여 하나의 멤버를 어디서든지 참조할 수 있는 장점을 가지지만, Garbage Collector의 관리 영역 밖에 존재하기 때문에 프로그램이 종료될 때까지 메모리에 값이 유지된 채로 존재하게됩.. [JAVA] 변수 명칭 정리 (멤버변수, 매개변수, 지역변수, 클래스변수, 인스턴트변수) 비전공자인 제게는 JAVA공부하면서 나오는 변수명까지 익숙하지 않고 헷갈려서 명칭들에 대해서 익숙해지기 위해서 정리를 해보려고 합니다. 먼저 선언 위치에 따라서 크게 멤버변수와 지역변수로 나뉩니다. 클래스영역에서 선언된 변수를 멤버변수라고 하는데 멤버변수는 클래스변수, 인스턴스 변수로 나뉘게 됩니다. 인스턴스변수 클래스영역에 선언되고 인스턴스 생성시 만들어집니다. 각각의 인스턴스마다 다른값을 가지고 있습니다. 클래스변수 인스턴스변수 앞에 static을 붙이기만 하면 됩니다. 인스턴스변수가 각각의 인스턴스마다 다른값을 가질 수 있는 것과 다르게 값을 공유하는 변수입니다. 지역변수 메소드 내에 선언되며 메소드 호출시 생성되고 메소드가 종료되면 사라집니다. 매개변수 파라미터라고 불리는데 메소드에서 입력값을 받.. [JAVA] Map을 활용한 학생부 프로그램 만들기 학생 // 클래스 name // 맴버변수 score Student("홍길동"); //생성자 -> 홍길동 -> 0~100 랜덤 (출력) // toString 오버라이딩 사용 => 홍길동 90점 main() 학생부 => Map을 활요할 예정! 1001번부터 순서대로 번호부여 1을 누르면 추가 C 추가할 학생의 이름을 입력하세요 2를 누르면 출력 R 3를 누르면 삭제 D 삭제할 학생의 번호를 입력하세요 4를 누르면 종료 [JAVA] toString() 오버라이딩 오버라이딩에 대해서 공부를하다가 toString() 오버라이딩이 값을 출력한다? 대충 이런 뜻으로만 이해되고 출력을 해주는 정확한 이유에 대해서 헷갈려서 하기와 같이 정리해보고자 합니다. 가장먼저 Object클래스에 대해서 알아야만 toString() 메소드를 이해할 수 있습니다. Object클래스 Object클래스는 모든 클래스의 최고 조상이기 때문에 Object클래스의 멤버들은 모든 클래스에서 바로 사용가능합니다. Object클래스는 멤버변수는 없고 오직 11개의 메소드만 가지고 있습니다. 즉, Object클래스는 모든 클래스를 상속 가능한 부모클래스라고 생각하면 됩니다. toString() 메소드 이 메소드는 인스턴스에 대한 정보를 문자열(String)로 제공할 목적으로 정의한 메소드 입니다. Ob.. 이전 1 2 3 4 5 다음