목록전체 글 (208)
각진 세상에 둥근 춤을 추자
(1) 태그 - 제목 표시하기 제목태그 Hello, 안녕 Hello, 안녕 Hello, 안녕 Hello, 안녕 Hello, 안녕 Hello, 안녕 (2) 태그 - 단락 만들기 태그는 paragraph의 줄임말로, 텍스트 단락을 만드는데, 이때 ‘단락’이란 앞뒤에 줄바꿈이 있는 텍스트 덩어리를 말한다. (3) 태그 - 줄 바꾸기 태그는 break의 줄임말이며 닫는 태그가 없다. 웹 브라우저 창에서 줄바꿈을 하려면 줄을 바꿀 위치에 태그를 사용한다. 문단태그 동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세 무궁화 삼천리 화려강산 대한사람 대한으로 길이 보전하세 남산 위에 저 소나무 철갑을 두른 듯 바람 서리 불변함은 우리 기상일세 무궁화 삼천리 화려 강산 대한 사람 대한으로 길이 보전하세 가..
파일 생성 (1) 개인 PC 작업 폴더에 HTML 파일을 생성한다. (2) 다운로드 받은 Visual Studio Code를 실행 후, EXPLORER 영역에 HTML 파일을 끌어다 놓는다. (3) New Folder 아이콘을 클릭하여 새로운 폴더를 생성한다. (ex. Ch01) (4) New File 아이콘을 클릭하여 방금 생성한 폴더의 하위 파일을 생성한다. (💡 이때 확장자명은 .html 로 작성한다. ) (ex. Hello.html) (5) ! 입력 - 키보드 enter : 기본 양식을 불러올 수 있다. 여기서, Document의 Document 자리에는 원하는 파일의 제목을 입력한다. 기본 구조 HTML 문서는 일반 문서와 달리 정해진 형식이 주어진다. 현재 언어가 HTML 언어로 작성된 웹 문..
(1) 해당 링크에 접속하여 다운로드 파일을 설치한다. https://code.visualstudio.com/ Visual Studio Code - Code Editing. Redefined Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications. Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows. code.visualstudio.com (2) 원하는 테마를 선택한 후 'Mark Done' 버튼을 클릭한다. (대부분 Dark 테..
여러 프로그래머들이 독립적으로 클래스를 작성하고, 이 클래스들을 합쳐서 하나의 소프트웨어를 완성한다고 한다. 이때 클래스들을 연결하려면 클래스 간의 상호작용을 기술하는 일종의 규격이 있어야 한다. 그래야 클래스들이 서로 잘 접속될 수 있다. 이러한 규격을 인터페이스(interface)로 정의한다. 구현 코드가 없는 인터페이스 인터페이스는 클래스 혹은 프로그램이 제공하는 기능을 명시적으로 선언하는 역할을 한다. 즉 추상 메서드와 상수로만 이루어져 있다. 구현 코드가 없기 때문에 당연히 인터페이스로 인스턴스를 생성할 수 없다. 그렇다면 구현 코드가 없는 인터페이스는 어떻게 사용할까? 인터페이스를 만들어 본다. 패키지에서 마우스 오른쪽 버튼 클릭 - New - Interface 클릭 인터페이스 이름은 Cacl..
final은 '마지막'이라는 의미로 더 이상 수정할 수 없다는 뜻이다. 자바 프로그램에서는 final 예약어를 변수, 메서드, 클래스에 사용할 수 있다. 사용 위치 설명 변수 final 변수는 상수를 의미한다. 메서드 final 메서드는 하위 클래스에서 재정의 할 수 없다. 클래스 final 클래스는 상속할 수 없다. 간단한 예제를 통해 상수를 의미하는 final을 이해해 본다. 두 개의 변수를 선언했다. 하나는 int num, 다른 하나는 상수로 선언한 final int NUM이다. num으로 선언한 변수에는 50이라는 값을 대입할 수 있었지만, NUM으로 선언한 상수에는 값을 대입하는 순간 오류가 발생하는 것을 알 수 있다. package ch09_4; public class Constant { in..
템플릿 메서드를 활용한 게임 관련 프로그램을 구현해 본다. 게임 캐릭터의 경험치가 쌓이거나 어떤 이벤트를 통해 레벨이 올라간다. 플레이어의 레벨이 다르면 해당 레벨에 따라 할 수 있는 기능도 다를 것이다. 이와 같은 상황을 구현해 본다. Player가 게임을 한다. 게임에서 Player의 레벨에 따라 할 수 있는 기능은 세 가지이다. run( ), jump( ), turn( )이다. - 초보자 레벨: 천천히 달릴 수 있습니다. -> run( ) - 중급자 레벨: 빠르게 달리고 점프할 수 있습니다. -> run( ), jump( ) - 고급자 레벨: 엄청 빠르게 달리고 점프하고 턴할 수 있습니다. -> run( ), jump( ), turn( ) 모든 레벨의 player에게 필살기 메서드 go(int co..
'템플릿(templete)'이란 틀이 있는 메서드라고 볼 수 있다. 추상 클래스를 활용한 예로 템플릿 메서드를 알아본다. Car 클래스를 생성한다. 이 클래스는 drive(), stop() 이라는 추상 메서드와 startCar(), turnOff(), run()이라는 구현된 메서드를 가지고 있다. 시동을 켜고 끄는 것은 차종에 관계없이 동일하기 때문에 미리 코드로 구현했다. 그에 반해 drive(), stop()은 차종에 따라 다른 방식으로 움직일 수 있기에 추상 메서드로 선언했다. package ch09_2; public abstract class Car { public abstract void drive(); public abstract void stop(); public void startCar()..
추상 클래스(abstract class)는 완전하게 구현되어 있지 않은 메소드를 가지는 클래스를 의미한다. 메소드가 미완성이므로 추상 클래스는 객체를 생성할 수 없는데, 주로 상속 계층에서 추상적인 개념을 나타내기 위한 용도로 사용된다. 추상 클래스는 항상 추상 메서드를 포함한다. 추상 메서드에는 구현 코드가 없는데, 함수의 구현 코드가 없다는 것은 곧 함수 몸체인 body가 없다는 것을 뜻한다. int add (int x, int y){ return x+y; } 위 코드와 같이 중괄호 { }로 감싼 부분을 함수의 구현부(implementation)라고 한다. 이 부분이 없는 함수를 추상 함수(abstract function)이라 하고 자바에서는 추상 메서드(abstract method)라고 한다. 추상..
상위 클래스(Animal)를 하위 클래스(Human)이 상속받는 경우, Animal ani = new Human(); 이라는 코드를 쓸 수 있다. 이때, 하위 클래스는 상위 클래스의 자료형인 Animal을 사용한다. 그렇기 때문에 Animal 클래스에서 선언한 메서드와 멤버 변수만 사용할 수 있다. 만약, 필요에 따라 하위 클래스가 원래의 자료형인 Human으로 되돌아가야 하는 경우에는 어떻게 할까? 상위 클래스로 형 변환되었던 하위 클래스를 다시 원래의 자료형으로 형 변환하는 것을 다운 캐스팅(down casting)이라고 한다. 다운 캐스팅을 할 때 주의해야 할 점이 있다. 상속 관계를 살펴 보면 모든 인간은 동물이지만 반대로 모든 동물은 인간이 아니다. 따라서 다운 캐스팅을 하기 전에 상위 클래스로..
상위 클래스인 Customer 클래스와 이를 상속받는 하위 클래스인 VIPCustomer 클래스가 있다. 만약 고객이 늘어 VIP 고객만큼 물건을 많이 구매하지는 않지만, 그래도 단골인 고객에게 혜택을 주고자 한다. 그래서 일반 고객과 VIP 고객 사이의 중간 등급인 GOLD 등급의 클래스를 만들고자 한다. GOLD 고객의 혜택은 다음과 같다. - 제품 구매시 10% 할인 - 보너스 포인트 2% 적립 - 담당 전문 상담원 없음 1. Customer 클래스 생성하기 (상위 클래스) package ch08_5; public class Customer { // 멤버 변수 protected int customerID;// 고객 아이디 protected String customerName;// 고객 이름 prot..