반응형
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./css/20_cascading.css">
</head>
<body>
    <!-- 부모태그 -->
    <div id="id-div">
        <!-- 자식태그 -->
        <h1 class="class-heading" id="id-heading">레드향</h1>
    </div>
    <p>레드향은 한라봉과 귤을 교배한 것으로</p>
    <p>일반 귤 보다 2~3배 크고, 과육이 붉고 통통하다.</p>
</body>
</html>
CSS 디자인 우선순위
  • 같은 선택자 우선순위 : 가장 나중에 디자인 된 것이 우선적으로 디자인 적용됩니다.
  • 부모 - 자식태그 : 자식태그의 디자인이 우선 적용됩니다.
  • id선택자 > class 선택자 > 태그선택자 > 전체선택자 순으로 우선 적용됩니다.
우선순위를 고려하기 힘든 경우 OR 디자인 파일이 너무 많을 경우

현재 나의 디자인을 적용하고 싶을 경우 : 속성 : 값 !important; 적용

 

#id-div {
  color: aqua;
}

/* h1 태그 */
#id-heading {
  color: coral;
}

/* h1 태그 */
.class-heading{
    color: green !important;  // green 컬러를 우선 적용하고 싶을 경우
}

/* h1 태그 */
h1{
    color: brown;
}

* {
    color: black;
}

실행결과

 

!important 가 적용된 컬러

반응형

'CSS > CSS 이론' 카테고리의 다른 글

[CSS] 웹 폰트 적용하기  (0) 2023.08.09
[CSS] Inline Style  (0) 2023.08.09
[CSS] 반응형 웹 이론 - 이미지 처리  (0) 2023.08.09
[CSS] 배경이미지  (0) 2023.08.08
[CSS] Box 기본속성  (0) 2023.08.07
반응형

만약 붉은색 박스 라인안에 이미지를 맞추어 넣기위해서는 어떻게 하면 될까?

 

이럴 경우에는  img 태그에 몇가지 코드를 작성해주면 된다.

 

 
div{
    /* 가로크기 */
    width: 200px;
    /* 외곽선 */
    border: 2px solid red;
}

 
img{
   
    max-width: 100%;
    height: auto;
}


먼저 max-width의 의미는 부모요소(붉은색 박스 크기)를 벗어나지 않게 조정하는 속성 태그이고,

height: auto; 의 의미는 자식요소(사진)에 맞추어 자동 조절해주는 속성 태그이다.

 

위의 코드를 적용하면 결과는 다음과 같다.

반응형

'CSS > CSS 이론' 카테고리의 다른 글

[CSS] Inline Style  (0) 2023.08.09
[CSS] CSS 디자인 우선순위  (0) 2023.08.09
[CSS] 배경이미지  (0) 2023.08.08
[CSS] Box 기본속성  (0) 2023.08.07
[CSS] 폰트스타일  (0) 2023.08.07
반응형

[html 예시]

<!-- 18_exam_train.html -->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <link rel="stylesheet" href="./css/18_exam_train.css">
  </head>
  <body>
    <h2>열차표 예매</h2>
    <table>
      <tr id="table_title">
        <th>열차번호</th>
        <th>출발</th>
        <th>도착</th>
        <th>출발시간</th>
        <th>특실</th>
        <th>일반실</th>
        <th>소요시간</th>
      </tr>
      <tr>
        <td id="col1" class="train">199</td>
        <td id="col2">수원</td>
        <td id="col3">대전</td>
        <td id="col4">10:00</td>
        <td id="col5"><img src="https://i.postimg.cc/mDcRkxKc/empty.png" /></td>
        <td id="col6"><img src="https://i.postimg.cc/QdX35KRZ/full.png" /></td>
        <td id="col7">01:44</td>
      </tr>
      <tr>
        <td class="train">230</td>
        <td>수원</td>
        <td>대전</td>
        <td>11:30</td>
        <td><img src="https://i.postimg.cc/mDcRkxKc/empty.png" /></td>
        <td><img src="https://i.postimg.cc/QdX35KRZ/full.png" /></td>
        <td>01:38</td>
      </tr>
    </table>
  </body>
</html>

[CSS]

더보기
table {
  /* 테이블 선 사이 붙이기 */
  border-collapse: collapse;
  /* 가로 크기를 고정크기로 */
  /* 화면단위 : px(고정크기), %(반응형단위),
        뷰포트 단위(반응형) : vw(가로), vh(세로) */
  /* viewport : 모니터의 화면(PC모니터, 태블릿, 모바일 화면에 맞추어 보임 */
  /* 예) 코딩 시 100vw(가로) -> PC, 태블릿 등에서 적절하게 맞추어줌 */
  width: 610px;
}
/* 디자인 기본 : 디자인 적용 우선순위 -> 같은 선택자일 경우 밑으로 갈수록 우선됨 */
table, td, th{
    /* 외곽선 */
    border: 1px solid #cccccc;
}
tr{
    /* 글자 정렬 : 중앙 */
    text-align: center;
}
td, th {
    /* 안쪽 여백 */
    padding: 5px;
}
#table_title{
    height: 30px;
    background-color: #eeeeee;
}
/* 클래스 선택자 */
.train{
   
    /* 굵은글씨 */
    font-weight: bold;
    /* 밑줄 */
    text-decoration: underline;
    color: #f1477b;
    background-color: #fbdbf2;
}
/* 참고 */
#col1, #col4 {
    width: 90px;
}
#col2, #col3{
    width: 60px;
}
#col5, #col6{
    width: 80px;
}
반응형

'CSS > CSS 실습' 카테고리의 다른 글

[CSS] display 실습  (0) 2023.08.10
[CSS] 웹 폰트 적용 예제  (0) 2023.08.09
[CSS] 배경이미지 연습문제  (0) 2023.08.08
[CSS] Box 연습문제  (0) 2023.08.08
[CSS] box 속성 연습문제  (0) 2023.08.07
반응형
다음 예시를 참고하여 CSS 코드를 작성해보세요

[html]

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./css/15_exam_back_img.css">
</head>
<body>
    <p>
        가족과 즐거운 크리스마스를 보내세요~~~
    </p>
    <div>
        카드 보내기
    </div>
</body>
</html>

[css]

더보기
body{
    /* 배경이미지 */
    /* background-image: url("경로") */
    background-image: url("../img/back.jpg");
    /* 이미지 반복 중단 */
    /* background-repeat: no-repeat; */
    background-repeat: no-repeat;
}
p{
    /* 글자크기 */
    font-size: 20px;
    /* 바깥여백 -위 */
    margin-top: 160px;
    /* 바깥여백 -왼쪽 */
    margin-left: 130px;
    /* 가로크기 */
    width: 280px;
   
}
div{
    /* 글자색 */
    color: white;
    /* 배경색 */
    background-color: blue;
    /* 바깥여백-왼쪽 */
    margin-left: 210px;
    /* 바깥여백-위쪽 */
    margin-top: 30px;
    /* 가로크기 */
    width: 120px;
    /* 글자 가운데 정렬 */
    text-align: center;
    /* 안쪽여백 */
    padding: 8px;
}

 

반응형

'CSS > CSS 실습' 카테고리의 다른 글

[CSS] display 실습  (0) 2023.08.10
[CSS] 웹 폰트 적용 예제  (0) 2023.08.09
[CSS] 테이블 스타일 적용  (0) 2023.08.09
[CSS] Box 연습문제  (0) 2023.08.08
[CSS] box 속성 연습문제  (0) 2023.08.07
반응형

CSS에서 배경이미지는 기본적으로 모든 화면을 꽉 채우는 속성을 가집니다.

CSS에 이미지 넣기

background-image: url("이미지 경로");

 

배경이미지 반복 중지 속성

background-repeat: no-repeat;

 

배경이미지 위치(좌표) 이동 : 단위(%, px)

background-position: 왼쪽 위쪽;

 

배경이미지 크기 조절
화면단위 : %, px(고정크기)
반응형 디자인 단위 : vw(뷰포트가로크기), vh(뷰포트세로크기)

background-size: 가로크기 세로크기;

 

예제
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./css/14_background_image.css">
</head>
<body>
    <!-- 백그라운드 이미지(배경 이미지) 예제 -->
</body>
</html>

[CSS]

/* body : 웹브라우저 창 크기를 의미합니다. */

body{
    /* 배경 이미지 : 기본, 모든 화면을 꽉 채움 */
    /* css 이미지 넣기 : url("이미지 경로") */
    /* 사용법 : background-image: url("이미지경로"); */
    background-image: url("https://picsum.photos/id/10/200/300");

    /* 배경이미지 반복 중지 속성 */
    background-repeat: no-repeat;

    /* 배경이미지 위치(좌표) 이동 : 단위(%, px) */
    /* 사용법 : background-position: 왼쪽 위쪽; */
    background-position: 20% 20px;

    /* 배경 이미지 크기 */
    /* 화면단위 : %, px(고정크기),
            vw(뷰포트가로크기), vh(뷰포트세로크기) : 반응형 디자인 단위 */
    /* background-size: 가로크기 세로크기; */
    background-size: 50vw 50vh;
}

[적용예시]

반응형

'CSS > CSS 이론' 카테고리의 다른 글

[CSS] CSS 디자인 우선순위  (0) 2023.08.09
[CSS] 반응형 웹 이론 - 이미지 처리  (0) 2023.08.09
[CSS] Box 기본속성  (0) 2023.08.07
[CSS] 폰트스타일  (0) 2023.08.07
[CSS] 태그선택자  (0) 2023.08.07
반응형
1. 다음 예시처럼 css 코드를 작성해보세요

[html]

<!-- 04_exam_2.html -->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <link rel="stylesheet" href="./css/04_exam_box_2.css" />
  </head>
  <body>
    <h3 id="title1">딸기</h3>
    <p>
      딸기는 25℃ 이하의 <span id="weather">선선한 기후</span>
      를 좋아하는 여러해살이 열매 채소로 5월에 열매를 수확합니다. 다른 작물에
      비해 잘 기르기 위해서 많은 노력이 필요합니다.
    </p>
    <h3 id="title2">양평 딸기 축제</h3>
    <ul>
      <li>일 시 : 2018년 1월 15일~5월 15일</li>
      <li>장 소 : <span id="location">양평군 내 딸기 마을</span></li>
      <li>연락처 : 031-774-0000</li>
      <li id="notice">일정은 바뀔 수 있으므로 방문 전 전화 요망</li>
    </ul>
  </body>
</html>

[css]

더보기
#title1 {
  color: purple;
}
#title2 {
  color: green;
}
#weather {
  color: red;
  font-weight: bold;
}
#location {
  font-weight: bold;
}
#notice {
  color: blue;
  font-weight: bold;
}
2. 다음 예시처럼 css 코드를 작성해보세요

[html]

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./css/05_exam_box_3.css">
</head>
<body>
    <h3>도심 속 생태문화공원 서울대공원</h3>
</body>
</html>

[css]

더보기
h3{
    /* 외곽선 */
    /* border : 선두께 선스타일 선색상 */
    border: 5px solid #e1285a;
    /* 안쪽 여백 */
    padding : 10px;
    /* 가로크기 : 고정크기(px) */
    width: 400px;
}
3. 다음 예시처럼 css 코드를 작성해보세요

[html]

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./css/06_exam_box_4.css">
</head>
<body>
    <h3 id="title1">도심 속 생태문화공원 서울대공원</h3>
    <h3 id="title2">도심 속 생태문화공원 서울대공원</h3>
    <h3 id="title3">도심 속 생태문화공원 서울대공원</h3>
</body>
</html>

[css]

더보기
#title1 {
  /* 외곽선(위쪽) */
  /* border-top : 선두께 선스타일 색상 */
  border-top: 2px solid black;
  /* 안쪽 여백 */
  padding: 5px;
  /* 가로 크기 */
  width: 345px;
}
#title2 {
  /* 외곽선(왼쪽) */
  /* border-left : 선두께 선스타일 색상 */
  border-left: 5px solid #e1285a;
  /* 안쪽 여백 */
  padding: 5px;
}
#title3 {
  /* 외곽선 */
  /* border : 선두께 선스타일 색상 */
  border: 2px solid skyblue;
  /* TODO : 둥근 사각형 속성 */
  /* TODO : border-radius: 크기; (크기가 클수록 원모양으로 됨) */
  border-radius: 3px;
  /* 안쪽 여백 */
  padding: 5px;
  /* 가로 크기 */
  width: 345px;
}
4. 다음 예시처럼 css 코드를 작성해보세요

[html]

<!-- 07_exam_box_5.html -->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <link rel="stylesheet" href="./css/07_exam_box_5.css">
  </head>
  <body>
    <h3>웹이란?</h3>
    <p>
      - 웹(Web)은 거미줄을 뜻하는 말로 WWW(World Wide Web)의 약어입니다.<br />
      - 인터넷과 웹 브라우저를 통해 사용자에게 정보를 제공하고 서로 소통하게
      해줍니다.<br />
      - 웹과 관련된 직업에는 웹 기획자, 웹 디자이너, 웹 퍼블리셔, 웹
      프로그래머가 있습니다.<br />
    </p>
  </body>
</html>

[css]

더보기
h3{
    /* 외곽선 */
    /* border : 선두께 선스타일 색깔 */
    border: 5px solid blue;
    /* 안쪽 여백 */
    padding: 20px;
    /* 바깥 여백 */
    margin: 30px;
}
5. 다음 예시처럼 css 코드를 작성해보세요

[html]

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./css/08_exam_box_6.css">
</head>
<body>
    <h3>동물원 속 온실식물원</h3>
    <p>
        온실식물원은 울창한 숲으로 둘러싸인 청계산 자락에 위치하고
        있으며, 총 928종의 다양한 식물이 전시되고 있습니다.
    </p>
</body>
</html>

[css]

더보기
h3{
    /* 왼쪽 외곽선 : border-left : 선두께 선스타일 선색상 */
    border-left: 8px solid blue;
    /* 안쪽 여백(왼쪽) */
    padding-left: 10px;
}
p {
    /* 외곽선 */
    /* border : 선두께 선스타일 선색깔 */
    border: 1px solid black;
    /* 가로크기 */
    width: 500px;
    /* 안쪽여백 */
    padding: 20px;
    /* 바깥여백(위쪽) */
    margin-top: 20px;
}
6. 다음 예시처럼 css 코드를 작성해보세요

[html]

<!-- 09_exam_box_7.html -->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <link rel="stylesheet" href="./css/09_exam_box_7.css">
  </head>
  <body>
    <h3>주말 야간 개장 안내</h3>
    <ul>
      <li>- 기간 : 7.28~8.20 09:00~21:00 (입장마감 20시)</li>
      <li>- 대상 : 동물원, 식물원</li>
      <li>- 프로그램 : 야간동물원 관람, 동물생태 설명회, 식물전시</li>
    </ul>
  </body>
</html>

[css]

더보기
h3{
    /* 바깥여백 */
    margin-top: 20px;
    margin-left: 20px;
}
ul{
    /* border : 선두께 선스타일 선색상 */
    border: 1px solid black;
    /* 안쪽 여백 padding : 상 우 하 좌 */
    padding: 20px 30px 30px 30px;
    /* 가로 크기 */
    width: 450px;
    /* 바깥 여백 : margin : 상 우 하 좌 */
    margin: 20px 0 0 20px;
}
li{
    /* 목록 앞 점 없애기 */
    list-style-type: none;
    /* 외곽선(점선) */
    /* border-bottom: 선두께 선스타일(dotted 점선) 색상 */
    border-bottom: 1px dotted gray;
    /* 안쪽 여백 축약형 : 상 우 하 좌 */
    padding: 10px 0 10px 0;
   
}
7. 다음 예시처럼 css 코드를 작성해보세요

[html]

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./css/10_exam_box_8.css">
</head>
<body>
    <h3>이용요금</h3>
    <p>행복카드 소지자는 본인 확인 후 입장료 30% 할인</p>
    <ul>
        <li>만 5세 이하, 만 65세 이상 무료</li>
        <li>단체는 30인 이상 30% 할인</li>
        <li>단체 관람 시 인솔 교사는 무료</li>
    </ul>
</body>
</html>

[css]

더보기
/* 문제풀이 : 예제(모든 태그에 박스 적용하기) */
body{
    /* 사용법 : border: 선두께 선스타일 선색상 */
    border: 1px solid red;
}
h3{
    border: 1px solid blue;
}
p{
    border: 1px solid green;
}
ul{
    border: 1px solid red;
}
li{
    border: 1px solid blue;
}
8. 다음 예시처럼 css 코드를 작성해보세요

[html]

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./css/11_exam_box_9.css">
</head>
<body>
    <h3>이용요금</h3>
    <p>행복카드 소지자는 본인 확인 후 입장료 30% 할인</p>
    <ul>
        <li>만 5세 이하, 만 65세 이상 무료</li>
        <li>단체는 30인 이상 30% 할인</li>
        <li>단체 관람 시 인솔 교사는 무료</li>
    </ul>
</body>
</html>

[css]

더보기
/* 문제 풀이 */
h3{
    border-left: 5px solid blue;
    margin: 20px;
    padding-left: 10px;
}
p{
    margin-left: 30px;
    margin-bottom: 10px;
 
}
ul{
    border-top: 1px solid gray;
    border-bottom: 1px solid gray;
    margin-left: 45px;
    padding-top: 5px;
    padding-bottom: 8px;
   
}
li{
    padding-top: 10px;
    margin-left: 20px;
}

 

9. 다음 예시처럼 css 코드를 작성해보세요

[html]

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./css/12_exam_box_color.css">
</head>
<body>
    <h3>캠핑장 9월 예약</h3>
    <ul>
        <li>9월분 예약 2019년 8월 16일(수) 14:00부터~</li>
        <li>문의전화: 031-222-1234</li>
    </ul>
    <div id="button">
        <!-- &gt; : 특수태그 (greater than) ">" -->
        자세히 보기 &gt;
    </div>
</body>
</html>

[css]

더보기
body{
    background-color: yellow;
}
#button{
    color: white;
    background-color: blue;
    width: 120px;
    height: 25px;
    padding: 8px;
    /* 글자중앙정렬 */
    /* text-align: center; */
    text-align: center;
}
10. 다음 예시처럼 css 코드를 작성해보세요

[html]

<!-- 13_exam_box_color_2.html -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./css/13_exam_box_color_2.css">
</head>
<body>
    <div id="banner">
        <h3>산림욕장 안내</h3>
        <p>470여 종의 식물과 다람쥐, 산토끼, 족제비,
            너구리 및 35종의 새들이 살고 있는
            최적의 자연학습장입니다.
        </p>
        <div id="button">
            자세히보기 &gt;
        </div>
    </div>
</body>
</html>

[css]

더보기
/* 문제 풀이 */
/* css 디자인 여백 초기화 */
/* 웹브라우저 (크롬, 익스플러러, 파이어폭스 등) 마다 여백이 조금씩 차이남*/
* {
    padding: 0;
    margin: 0;
}
#banner {
    /* 배경색 */
    background-color: #f6e9ed;
    /* 가로크기 */
    width: 320px;
    /* 세로크기 */
    height: 180px;
    /* 외곽선 */
    /* border: 선두께 선스타일 선색상 */
    border: 1px solid #cccccc;
    /* 안쪽 여백 */
    padding: 20px;
    /* 바깥여백 : 위쪽 */
    margin-top: 20px;
    /* 바깥여백 : 왼쪽 */
    margin-left: 20px;
}
p {
    /* 바깥여백 : 위쪽 */
    margin-top: 20px;
}
#button {
    /* 배경색 */
    background-color: #e1285a;
    /* 가로크기 */
    width: 100px;
    /* 둥근 사각형(모서리) */
    border-radius: 5px;
    /* 글자색 */
    color: white;
    /* 글자 크기 */
    font-size: 12px;
    /* 안쪽 여백 */
    padding: 5px;
    /* 글자 중앙 정렬 */
    text-align: center;
    /* 바깥여백 - 위쪽 */
    margin-top: 30px;
}
반응형

'CSS > CSS 실습' 카테고리의 다른 글

[CSS] display 실습  (0) 2023.08.10
[CSS] 웹 폰트 적용 예제  (0) 2023.08.09
[CSS] 테이블 스타일 적용  (0) 2023.08.09
[CSS] 배경이미지 연습문제  (0) 2023.08.08
[CSS] box 속성 연습문제  (0) 2023.08.07
반응형

위의 그래프를 참고하여 상속 구조로 클래스를 작성해보자

부모 클래스인 Hero 만들기

package ch03_1;

 

public class Hero {

 

String name;

int hp;

 

public Hero(String name, int hp) {

this.name = name;

this.hp = hp;

}

 

// 접근제어 지시자 - protected

// 상속을 받는 자식 클래스들은 접근할 수 있다.

 

protected void attack() {

System.out.println("기본 공격을 시작합니다.");

}

}

자식 클래스인 Warrior / Archer / Wizard 만들기

package ch03_1;

 

public class Warrior extends Hero {

 

// !! 부모 클래스에 사용자 정의 생성자가 있다면

// 자식 클래스에서 반드시 부모 생성자를 먼저 호출해야 한다.

public Warrior(String name, int hp) {

// super < -- 부모를 의미한다.

// System.out.println("asdasdasd"); << 부모가 태어나기 전에 먼저 일할 수 없다.

super(name, hp); // 부모 생성자를 먼저 호출해야한다.

}

 

public void comboAttack() {

System.out.println("전사가 2단 공격을 합니다.");

}

 

// 상속에서 오버라이드

@Override // 어노테이션

protected void attack() {

// super.attack(); // super.

System.out.println(super.name + "가 기본 공격을 합니다.");

// 부모(Hero)의 기능인 attack을 자식 클래스에서 재정의

}

}

package ch03_1;

 

public class Archer extends Hero {

 

public Archer (String name, int hp) {

super(name, hp);

}

 

// 메서드 오버라이드

@Override

protected void attack() {

// super.attack();

System.out.println(super.name + "가 기본 공격을 합니다.");

}

// 부모(Hero)의 기능인 attack을 자식 클래스에서 재정의

 

void fireArrow() {

System.out.println("불화살 공격을 합니다.");

}

}

package ch03_1;

 

public class Wizard extends Hero{

 

public Wizard (String name, int hp) {

super(name, hp);

}

 

// 메서드 오버라이드

@Override

protected void attack() {

// super.attack();

System.out.println(super.name + "가 기본공격을 합니다.");

}

// 부모(Hero)의 기능인 attack을 자식 클래스에서 재정의

 

 

void freezing() {

System.out.println("얼음공격을 합니다.");

}

}

기능 확인

public static void main(String[] args) {

Warrior war1 = new Warrior("전사", 100);

war1.attack();

war1.comboAttack();

 

Archer arc1 = new Archer("궁수", 80);

arc1.attack();

arc1.fireArrow();

 

Wizard wiz1 = new Wizard("마법사", 60);

wiz1.attack();

wiz1.freeZing();

}

실행결과

전사가 기본 공격을 합니다.

전사가 2단 공격을 합니다.

궁수가 기본 공격을 합니다.

불화살 공격을 합니다.

마법사가 기본공격을 합니다.

얼음공격을 합니다.

 

반응형
반응형
객체 지향 패러다임의 핵심

객체와 객체간의 상호작용 그리고 관계를 형성해 나가는 것

 

오버라이딩 : 상속에서는 부모메서드의 재정의가 가능하다.

조상클래스로부터 상속받은 메서드의 내용을 변경하는 것을 오버라이딩이라고 한다. 상속받은 메서드를 그대로 사용하기도 하지만, 자손 클래스 자신에 맞게 변경해야하는 경우도 존재한다. 이럴 때 조상의 메서드를 오버라이딩한다 라고 한다.

 

class Cal2 extends Cal {

 

public Cal2() {

System.out.println("Cal2() 생성자 호출 - 자식");

}

 

public int minus(int n1, int n2) {

return n1 - n2;

}

@Override // 어노테이션 이라 부른다.

public int mutiply(int n1, int n2) {

if(n1 == 0 || n2 == 0) {

System.out.println("0을 입력하였습니다.");

}

return n1 * n2;

} // 부모메서드를 재정의

위의 예시처럼 부모 클래스의 minus 메서드를 자식 클래스에서 재정의 한 것을 오버라이딩이라고 한다.

 

오버라이딩의 조건

오버라이딩은 메서드의 내용만을 새로 작성하는 것이므로 메서드의 선언부(메서드 이름, 매개변수, 반환타입)는 조상의 것과 완전히 일치해야한다.

다만, 접근 제어자와 예외는 제한된 조건 하에서만 다르게 변경할 수 있다.

 

오버로딩과 오버라이딩
  • 오버로딩 : 기존에 없는 새로운 메서드를 추가하는 것, new
  • 오버라이딩 : 조상으로 부터 상속받은 메서드의 내용을 변경하는 것, change, modify

package ch99;

 

public class Parent {

void parentMethod() {}

}

 

class Child extends Parent{

 

void parentMethod() { // 오버라이딩

// .....

}

void parentMenthod(int i) {} // 오버로딩

 

void childMethod() {}

void childMethod(int i) {} // 오버로딩

void childMethod() {} // 에러, 중복정의 됨

 

}

반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] 객체지향 언어  (0) 2023.08.09
[JAVA] switch 문  (0) 2023.08.09
[JAVA] 상속  (0) 2023.08.08
[JAVA] 배열  (0) 2023.08.04
[JAVA] singleton 패턴  (0) 2023.08.03
반응형
객체 간의 상속은 어떤 의미일까?
상속?

기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속을 통해서 클래스를 작성하면 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다.

클래스 상속
  • 새로운 클래스를 정의할 때 이미 구현된 클래스를 상속(Inheritance)받아서 속성이나 기능을 확장하여 클래스를 구현함
  • 이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를 구현해야 할 때 기존 클래스를 상속함

  • 상속하는 클래스 : 상위 클래스, parent calss, super class
  • 상속받는 클래스 : 하위 클래스, child class, subclass
상속을 구현하는 경우
  • 상위 클래스는 하위 클래스 보다 더 일반적인 개념과 기능을 가짐
  • 하위 클래스는 상위 클래스 보다 더 구체적인 개념과 기능을 가짐
  • 하위 클래스가 상위 클래스의 속성과 기능을 확장(extends)한다는 의미

자바에서 상속을 구현하는 방법은 간단하다. 새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 키워드 'extends'와 함께 써 주면 된다.

예를 들어 새로 작성하려는 클래스의 이름이 C이고 상속받고자 하는 기존 클래스의 이름이 A라면 다음과 같이 하면 된다.

class A {   }
class C extends A { 
         // .....
}

이 두 클래스는 서로 상속 관계에 있다고 하며, 상속해주는 클래스를 '조상 클래스'라 하고 상속 받는 클래스를 '자손 클래스'라고 한다.

예를 들어 Parent 클래스에 age라는 정수형 변수를 멤버변수로 추가하면, 자손 클래스는 조상의 멤버를 모두 상속 받기 때문에 Child 클래스는 자동으로 age라는 멤버변수가 추가된 것과 같은 효과를 얻는다.

반대로 자손인 Child클래스에 새로운 멤버로 play( ) 메서드를 추가하면

Child클래스에 새로운 코드가 추가되어도 조상인 Parent클래스에는 아무런 영향도 받지 않는다.

조상클래스가 변경되면 자손 클래스는 자동적으로 영향을 받게되지만, 자손 클래스가 변경되는것은 조상 클래스에 아무런 영향을 주지 못한다.

자손 클래스는 조상 클래스의 모든 멤버를 상속받으므로 항상 조상 클래스보다 같거나 많은 멤버를 갖는다.

  • 자손 클래스는 조상클래스의 모든 멤버를 상속 받는다. (단, 생성자와 초기화 블럭은 상속되지 않는다.)
  • 자손 클래스의 멤버 개수는 조상 클래스보다 항상 같거나 많다.
반응형

'Java > Java 이론' 카테고리의 다른 글

[JAVA] switch 문  (0) 2023.08.09
[JAVA] 상속 (2)  (0) 2023.08.08
[JAVA] 배열  (0) 2023.08.04
[JAVA] singleton 패턴  (0) 2023.08.03
[JAVA] static 변수  (0) 2023.08.03
반응형
아래 예시와 같이 CSS 코드를 작성해보세요

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <link rel="stylesheet" href="./css/03_exam_table_box_1.css" />
  </head>
  <body>
    <!-- border-collapse : collapse; (테이블의 안쪽 선붙이기 속성) -->
    <h3>태풍 정보</h3>
    <table>
      <tr>
        <th rowspan="2">일시</th>
        <th colspan="2">중심위치</th>
        <th rowspan="2">중심기압(hPa)</th>
        <th colspan="2">최대풍속</th>
      </tr>
      <tr>
        <td>위도</td>
        <td>경도</td>
        <td>초속(m/s)</td>
        <td>시속(km/s)</td>
      </tr>
    </table>
  </body>
</html>
/* 문제 풀이 */
/* 선택자들에게 공통된 속성 적용하기 */
/* 사용법 :
선택자, 선택자2, ... {
    속성 : 값;
}
*/
table, tr, th, td {
  /* 외곽선 : border : 선두께 선스타일 선색상 */
  border: 1px solid black;
  /* 테이블 선사이 간격 붙이기 속성 */
  border-collapse: collapse;
  /* 안쪽 여백(padding) */
  padding: 8px;
}

 

반응형

'CSS > CSS 실습' 카테고리의 다른 글

[CSS] display 실습  (0) 2023.08.10
[CSS] 웹 폰트 적용 예제  (0) 2023.08.09
[CSS] 테이블 스타일 적용  (0) 2023.08.09
[CSS] 배경이미지 연습문제  (0) 2023.08.08
[CSS] Box 연습문제  (0) 2023.08.08
반응형

[html]

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./css/01_box_width_height.css">
</head>
<body>
    <!-- 1st 박스 -->
    <div></div>
    <!-- 2nd 박스 -->
    <div></div>
</body>
</html>

[CSS]

/* box 기본속성 : 높이, 가로, 바깥여백, 안쪽여백, 외곽선 */
div{
    /* 가로 */
    width: 100px;
    /* 세로 */
    height: 100px;
    /* 배경색 */
    background-color: red;
    /* 외곽선 */
    /* border : 선두께 선스타일 선색깔 */
    border: 5px solid orange;  // solid가 실선
    /* 안쪽 여백(padding) */
    padding: 30px;
    /* 바깥 여백(margin) */
    margin: 50px;

}

[결과]

 

[html]

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./css/02_box_detail.css">
</head>
<body>
    <div></div>
</body>
</html>

[CSS]

/* box 기본 속성 : 상세 */
div{
    /* 가로 */
    width: 100px;
    /* 세로 */
    height: 100px;
    /* 외곽선 */
    /* border : 선두께, 선스타일, 선색상 */
    border: 5px solid orange;
    /* 안쪽 여백 : 상/좌/하/우 */
    /* padding: 10px; */
    /* 따로 설정 */
    /* padding-left: 0px;
    padding-top: 30px;
    padding-right: 0px;
    padding-bottom: 30px; */
    /* 축약형 :  */
    /* padding : 상 우 하 좌(12시 기준으로 시계방향) */
    padding: 30px 0 30px 0;

    /* 바깥여백 : 상/좌/하/우 동일하게 설정*/
    /* margin: 10px; */
    /* 따로 설정 */
    /* margin-left: 0px;
    margin-top: 10px;
    margin-right: 0px;
    margin-bottom: 10px; */
    /* 축약 형 */
    /* margin : 상 우 하 좌 */
    margin: 10px 0 10px 0;
}

[결과값]

반응형

'CSS > CSS 이론' 카테고리의 다른 글

[CSS] CSS 디자인 우선순위  (0) 2023.08.09
[CSS] 반응형 웹 이론 - 이미지 처리  (0) 2023.08.09
[CSS] 배경이미지  (0) 2023.08.08
[CSS] 폰트스타일  (0) 2023.08.07
[CSS] 태그선택자  (0) 2023.08.07
반응형
.font_arial{
    /*  폰트 스타일 : pc에 폰트가 있어야 화면에 적용됨  */
    /*  font-family : 스타일1, 스타일2, 스타일3  */
    /*  스타일 1 이 있으면 스타일 1이 적용됨
        없으면 스타일 2이 적용,
        없으면 스타일 3이 적용
    */
    font-family: Arial, Helvetica, sans-serif;
}

.font_roman{
    font-family: 'Times New Roman', Times, serif;
}

.font_italic{
    /* 이텔릭체 */
    font-style: italic;
    /* 굵은 글씨 bold, bolder(더굵게)*/
    font-weight: bolder;
    /* 글자 중앙 정렬 : 이미지는 등은 안됨, 오직 글자만 가능 */
    /* 중앙 정렬 */
    text-align: center;

    /* 왼쪽 정렬 */
    /* text-align: left; */
   
    /* 오른쪽 정렬 */
    /* text-align: right; */

}

폰트사이즈
/* 글자 단위 : px, em(rem), % */
/* 1st p태그 선택 */
p:nth-child(1) {
    /* 상대 크기 단위(글자) */
    /* 1.0em == 16px(웹 브라우저 기본 글자 단위 : 부모 태그에서 상속받음) */
    /* font-size : 100% == 1.0em == 16px */
    /* font-size: 1.0em; */
    /* 고정 크기 */
    font-size: 16px;
}
/* 2nd p태그 선택 */
p:nth-child(2) {
    font-size: 1.5em;
}
/* 3rd p태그 선택 */
p:nth-child(3) {
    font-size: 2.0em;
}

반응형

'CSS > CSS 이론' 카테고리의 다른 글

[CSS] CSS 디자인 우선순위  (0) 2023.08.09
[CSS] 반응형 웹 이론 - 이미지 처리  (0) 2023.08.09
[CSS] 배경이미지  (0) 2023.08.08
[CSS] Box 기본속성  (0) 2023.08.07
[CSS] 태그선택자  (0) 2023.08.07

+ Recent posts