본문 바로가기

Java/본격 Java 상속

(13)
[Java] 실습 - 구글 출제문제 풀어보기(1~1000사이의 정수 중 8의 총 개수) 구글 입사문제로 1~10000 사이의 정수 중 8의 총 개수를 물어보는 문제가 나왔다고 한다. 조금 축소해서 1~1000 사이의 정수 중 8의 총 개수를 구하여 출력해보자 예를 들면 888 > 3개 8128 > 2개 8808 > 3개 이런 식으로 갯수를 카운트 한다. . . -접근방법 1부터 1000까지 숫자를 줄바꿈없이 나열하여 String에 저장한다. ex) 1234567891011121314......9991000 앞에서부터 하나씩 쪼개서 8의 개수를 확인한다. /* 1~1000 사이의 정수 중 8의 총 개수를 구하여 출력 */ class GoogleExam { public static void main(String[] args) { String GoogleExam = ""; int cnt = 0;..
[Java] String toString() String toString() : 객체(인스턴스)를 문자열로 출력시켜주는 메소드 단, 문자열로 형변환하는 것이 아니고 단순히 출력시 보여줄 문자열로 변경합니다. 모든 클래스에 toString()메소드를 오버라이딩해놓으면 유용하게 사용이 가능합니다.(권장사항) . . 예제 class MemberInfo // 한 명의 회원정보를 저정하기 위한 클래스 { private String uid, pwd, name; public MemberInfo(String uid, String pwd, String name){ this.uid = uid; this.pwd = pwd; this.name = name; } public String toString(){ // Object클래스의 메소드로 현재 오버라이딩 중 // 객체..
[Java] 간단한 로그인 프로그램 만들어보기 상속과 오버라이딩을 사용하여 간단한 로그인 프로그램을 만들어보자 클래스 이름들을 정의하면 MemberInfo : 한 명의 회원정보를 저장하기 위한 클래스이다. 기본정보로는 아이디(uid), 비밀번호(pwd), 이름(name)을 저장하고 get, set을 이용하여 각각의 변수들을 저장하거나 가져다 쓸 수 있다. MemberHandler : 로그인과 회원가입을 할 수 있게 메소드들을 저장한다. 로그인 부분에서 MemberLogin과 MemberLoginEx 두 가지를 만들어 봤습니다. import java.util.*; /* 1. 회원가입 2. 로그인 */ class MemberInfo // 한 명의 회원정보를 저정하기 위한 클래스 { private String uid, pwd, name; public Me..
[Java] 실습 - 전화번호부 만들기 - 2 앞서서 한 전화번호부에 친구찾기 기능을 추가해봤다. - 접근방법 처음에는 이름을 검색했을 때, 해당 친구 이름이 일치한가 확인하는 equals() 메소드를 사용하였다. 하지만 평소에 우리가 검색할 때는 전체 이름을 다 검색하지 않고 일부만 검색해도 나오는 상황을 많이 볼 수 있다. 정화깋 일치하지 않아도 찾을 수 있게 indexOf() 메소드를 사용한다. . .. import java.util.*; /* 주소록 프로그램- 친구전용 데이터 : 고교동창, 대학동창으로 구분지어 저장 - 클래스로 제작하며 친구의 정보를 저장하기 위한 용도의 클래스 관리P/G : 친구추가, 검색 등의 기능 - 데이터 저장용 클래스를 이용하여 기능을 구현 */ class Friend // 친구의 기본정보를 저장하는 클래스 { St..
[Java] 실습 - 전화번호부 만들기 - 1 상속과 오버라이딩을 이용하여 전화번호부 프로그램을 제작해봤습니다. 주소록 제작 조건은 주소록 프로그램 - 친구전용 데이터 : 고교동창, 대학동창으로 구분지어 저장 - 클래스로 제작하며 친구의 정보를 저장하기 위한 용도의 클래스 관리P/G : 친구추가, 검색 등의 기능 - 데이터 저장용 클래스를 이용하여 기능을 구현 . . 을 고려하여 코딩을 하였습니다 . . 예제1 import java.util.*; /* 주소록 프로그램- 친구전용 데이터 : 고교동창, 대학동창으로 구분지어 저장 - 클래스로 제작하며 친구의 정보를 저장하기 위한 용도의 클래스 관리P/G : 친구추가, 검색 등의 기능 - 데이터 저장용 클래스를 이용하여 기능을 구현 */ class Friend // 친구의 기본정보를 저장하는 클래스 { S..
[Java] InstanceOf 하위클래스 형변환 오버라이딩에서 선언된 클래스 인스턴스에 따라 접근할 수 있는 범위가 달랐다. 즉, 하위클래스 인스턴스에는 상위클래스 인스턴스가 접근할 수 있지만, 상위클래스 인스턴스에는 하위클래스 인스턴스가 접근할 수 없다. 그러면 오버라이딩 없이 상속받은 클래스들로 작업할 때는 무슨 일이 일어날까 class BasicBox { public void basicWrap(){ System.out.println("Basic Wrap"); } } class PaperBox extends BasicBox{ public void paperWrap(){ System.out.println("Paper Wrap"); } } class GoldBox extends PaperBox{ public void goldWrap(){ System...
[Java] 오버라이딩(overriding)과 오버로딩(overloading) 오버라이딩과 오버로딩은 비슷한 이름으로 많이 헷갈릴 수 있다. 오버라이딩은 상위클래스에 있는 메소드를 하위클래스에서 재선언하면서 하위클래스에 메소드가 작동하도록 하는 것이고 오버로딩은 같은 이름의 메소드들을 선언하여 받는 값에따라 해당 메소드를 불러내는 것을 의미한다. . . 예제 class Aa { void rideMethod(){ System.out.println("Aa Method"); } void loadMethod(){ System.out.println("void Method"); } } class Bb extends Aa { void rideMethod(){ System.out.println("Bb Method"); } void loadMethod(int n){ System.out.printl..
[Java] 오버라이딩(overriding) 오버라이딩(overriding) - 하위클래스에서 상위클래스의 메소드를 리턴타입까지 동일하게 선언한 후, 재정의 하는 것을 의미합니다. - 인스턴스 선언 시 상위클래스형으로 선언하면 모든 하위클래스로 생성이 가능합니다. 즉, 상위클래스형 인스턴스에는 하위클래스형 인스턴스가 들어갈 수 있습니다. 상위클래스형으로 선언된 인스턴스는 오직 상위클래스의 멤버에만 접근가능합니다. (생성된 하위클래스의 멤버에는 접근 불가) 단, 오버라이딩된 메소드는 하위클래스로 접근가능합니다. . . 예제 class Speaker { private int volume; public void showCurrentState(){ System.out.println("볼륨 크기 : " + volume); } public void setVo..