// 다른 공간
c1.number = 3
c1.image = ♣
c2.number = 5
c2.image = ♣
// 같은 공간
c1.width = 200
c1.height = 250
c2.width = 200
c1.height = 250
class Card
{
int number; // 인스턴스
String image;
static int width; // 정적
static int height;
}
public class 클래스구성요소 {
public static void main(String[] args) {
Card c1 = new Card();
c1.number = 3;
c1.image = "♣";
c1.width = 150;
c1.height = 180;
Card c2 = new Card();
c2.number = 5;
c2.image = "♣";
c2.width = 200;
c2.height = 250;
// 인스턴스 변수 : 다른 공간
System.out.println("c1.number = " + c1.number);
System.out.println("c1.image = " + c1.image);
System.out.println("c2.number = " + c2.number);
System.out.println("c2.image = " + c2.image);
// 정적 변수 : 같은 공간
System.out.println("c1.width = " + c1.width);
System.out.println("c1.height = " + c1.height);
System.out.println("c2.width = " + c2.width);
System.out.println("c2.height = " + c2.height);
}
}
DB 이용해 맛집 리스트 불러오기
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
1. 믿고 보는 맛집 리스트
2. 지역별 맛집 리스트
3. 인기 메뉴별 맛집 리스트
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
카테고리 선택: 1 // 카테고리 1번 입력 시 카테고리 12번까지 출력
1
"돈가스 맛집 베스트 30곳"
"돈알못도 눈물 흘리며 먹는다는 그 식당!"
==================================================
.
.
30
"2022 브런치 인기 맛집 TOP 50"
"하루의 시작은 맛있는 브런치로!"
==================================================
카테고리 번호: 1
제목: 돈가스 맛집 베스트 30곳
부제목: "돈알못도 눈물 흘리며 먹는다는 그 식당!"
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
.
.
카테고리 번호: 12
제목: 가성비 데이트 맛집 베스트 25곳
부제목: "가심비, 가성비 다 잡은 맛집 리스트가 필요해?"
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
class Category
{
int cateNo; // 1-30번째 맛집 → 클릭 시 상세 보기 이동
String title;
String subject;
}
class Food
{
}
public class 맛집db {
static Category[] cate=new Category[30]; //초기값
// 구현
static {
// 초기화 블록
try
{
Document doc=Jsoup.connect("https://www.mangoplate.com/").get();
Elements title=doc.select("div.top_list_slide span.title");
Elements subject=doc.select("div.top_list_slide p.desc");
Elements poster=doc.select("div.top_list_slide img.center-croping");
Elements link=doc.select("div.top_list_slide ul.list-toplist-slider a");
for(int i=0;i<title.size();i++)
{
cate[i]=new Category();
cate[i].cateNo=i+1;
cate[i].title=title.get(i).text();
cate[i].subject=subject.get(i).text();
System.out.println((i+1));
System.out.println("\""+title.get(i).text()+"\"");
System.out.println(subject.get(i).text());
System.out.println("==================================================");
}
}catch(Exception ex){}
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ");
System.out.println("1. 믿고 보는 맛집 리스트");
System.out.println("2. 지역별 맛집 리스트");
System.out.println("3. 인기 메뉴별 맛집 리스트");
System.out.println("ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ");
System.out.print("카테고리 선택: ");
int no = sc.nextInt();
for(int i=0; i<맛집db.cate.length; i++)
{
if(no==1)
{
if(i>=0 && i<12)
{
System.out.println("카테고리 번호: " + 맛집db.cate[i].cateNo);
System.out.println("제목: " + 맛집db.cate[i].title);
System.out.println("부제목: " + 맛집db.cate[i].subject);
System.out.println("ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ");
}
}
else if(no==2)
{
if(i>=12 && i<18)
{
System.out.println("카테고리 번호: " + 맛집db.cate[i].cateNo);
System.out.println("제목: " + 맛집db.cate[i].title);
System.out.println("부제목: " + 맛집db.cate[i].subject);
System.out.println("ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ");
}
}
else if(no==3)
{
if(i>=18 && i<30)
{
System.out.println("카테고리 번호: " + 맛집db.cate[i].cateNo);
System.out.println("제목: " + 맛집db.cate[i].title);
System.out.println("부제목: " + 맛집db.cate[i].subject);
System.out.println("ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ");
}
}
}
}
ㅡㅡㅡㅡ 메뉴 ㅡㅡㅡㅡ
1. 사원 등록
2. 사원 목록
3. 사원 수정
4. 사원 삭제
9. 프로그램 종료
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
메뉴 선택:
1
사번 입력:
1
이름 입력:
aaa
메뉴 선택: // 같은 곳에 모두 출력해야 하기 때문에 static 사용(**)
2
사번: 1
이름: aaa
// 일반 데이터 → 모아서 1개의 데이터로 만들기 (사용자 정의 데이터형) = class
public class Sawon {
int sabun;
String name;
String dept;
String job;
String loc;
int pay;
}
public class SawonController {
static Sawon[] sawon = new Sawon[20];
static int index = 0; // 끝날 때까지 프로그램 유지
// 1. 사원 등록
static void insert(Sawon sa)
{
// SawonController sc = new SawonController();
sawon[index]=sa;
}
// 2. 사원 목록
static void list()
{
// SawonController sc = new SawonController();
for(Sawon s:sawon)
{
if(s!=null)
{
System.out.println("사번: " + s.sabun);
System.out.println("이름: " + s.name);
System.out.println("ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ");
}
}
}
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
SawonController sc = new SawonController(); // 뭐에 쓰는 거지??
while(true)
{
System.out.println("ㅡㅡㅡㅡ 메뉴 ㅡㅡㅡㅡ");
System.out.println("1. 사원 등록");
System.out.println("2. 사원 목록");
System.out.println("3. 사원 수정");
System.out.println("4. 사원 삭제");
System.out.println("9. 프로그램 종료");
System.out.println("ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ");
System.out.println("메뉴 선택: ");
int m = scan.nextInt();
if(m==9)
break;
else if(m==1)
{
System.out.println("사번 입력: ");
Sawon ss = new Sawon();
ss.sabun = scan.nextInt();
System.out.println("이름 입력: ");
ss.name = scan.next();
System.out.println("부서명 입력: ");
ss.dept = scan.next();
System.out.println("근무지 입력: ");
ss.loc = scan.next();
System.out.println("직위 입력: ");
ss.job = scan.next();
System.out.println("급여 입력: ");
ss.pay = scan.nextInt();
sc.insert(ss);
sc.index++;
}
else if(m==2)
{
sc.list();
}
}
}
오늘 수업 요점
인스턴스 변수는 new 사용 시마다 따로 메모리 생긴다.
static 변수는 new 상관 없이 1개의 메모리만 생긴다.
필독
1. 자바 정석
p242-243
p246-249
2. 객체 지향 정리 문서
객체 지향 중요하니까.. 관련 문서 잘 읽고 정리해서 업로드하기
'수업' 카테고리의 다른 글
+18 생성자, 초기화 블럭 (static, instance) (0) | 2022.05.26 |
---|---|
+17 멤버 메소드 (1) | 2022.05.25 |
+15 객체 지향, 클래스 데이터형 제작 (1) | 2022.05.23 |
+14 메소드 활용 (0) | 2022.05.20 |
+14 메소드 정리(매개변수) (0) | 2022.05.20 |