반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 리액트
- ReactNative
- 국비IT
- javascript
- 정보처리기사실기요약
- typescript
- 자바스크립트
- 국비코딩
- 자스코테
- 코딩테스트
- php
- spring
- CSS
- 정보처리기사정리
- 정보처리기사실기
- 정보처리기사요약
- 이안의평일코딩
- 오라클
- 정보처리기사
- Oracle
- 정보처리기사실기정리
- 평일코딩
- VUE
- react
- 타입스크립트
- Java의정석
- 자바스크립트 코딩테스트
- 리액트네이티브
- 자바의정석
- 스프링
Archives
- Today
- Total
이안의 평일코딩
JAVA의 정석 18일차 - 멤버변수와 공유변수 본문
반응형
2020.07.08(수)
=>영화
1. 영화명, 2. 출연, 3. 감독, 4. 예매율, 5. 순위
public class MainClass {
public static void main(String[] args) {
String[] title = {
"#살아있다(2020)",
"밤쉘: 세상을 바꾼 폭탄선언(2019)",
"다크 나이트 라이즈(2012)",
"원 데이(2011)",
"결백(2019)"};
String[] actor = {
"유아인, 박신혜",
"샤를리즈 테론, 니콜 키드먼, 마고 로비",
"크리스찬 베일, 마이클 케인, 게리 올드만, 앤 해서웨이, 마리옹 꼬띠아르",
"앤 해서웨이, 짐 스터게스",
"신혜선, 배종옥, 허준호"};
String[] director = {
"조일형",
"제이 로치",
"크리스토퍼 놀란",
"론 쉐르픽",
"박상현"};
double[] reserve = {17.4, 12.1, 7.5, 1.3, 1.0};
int[] rank = {1, 2, 3, 4, 5};
// 배열 ==> index
for(int i=0; i<5; i++) {
System.out.println("영화명:"+title[i]);
System.out.println("감독:"+director[i]);
System.out.println("출연:"+actor[i]);
System.out.println("예매율:"+reserve[i]);
System.out.println("영화순위:"+rank[i]);
System.out.println("====================");
}
}
}
사용자가 직접 데이터형을 만든다
class MovieInfo{
// 멤버변수, 인스턴수 변수 => 메모리 공간을 생성 => new
String title;
String director;
String actor;
double reserve;
int rank;
static String site_name; // static변수는 공간이 1개. 마지막에 입력된 값으로 바뀜
// 하나가 바뀌면 전체가 다 바뀜 => static변수=공유변수
// 클래스 안에서 각각 공간 차지 => instance변수=멤버변수
}
//MovieInfo m1 = new MovieInfo()
public class MainClass2 { // public class는 한번만가능, 저장명과 동일
// public생략 가능한데 이 경우에는 main이 있는 class가 저장명
// "원 데이(2011)",
// "결백(2019)"};
// "앤 해서웨이, 짐 스터게스",
// "신혜선, 배종옥, 허준호"};
// "론 쉐르픽",
// "박상현"};
// double[] reserve = {, , , 1.3, 1.0};
public static void main(String[] args) {
MovieInfo m1 = new MovieInfo();
// m1 => 메모리에 저장되어 있는 변수의 초기값
// MovieInfo[] m = new MovieInfo[50];
m1.title="#살아있다(2020)";
m1.director="유아인, 박신혜";
m1.actor="조일형";
m1.reserve=17.4;
m1.rank=1;
m1.site_name="CGV";
MovieInfo m2 = new MovieInfo();
m2.title="밤쉘: 세상을 바꾼 폭탄선언(2019)";
m2.director="샤를리즈 테론, 니콜 키드먼, 마고 로비";
m2.actor="제이 로치";
m2.reserve=12.1;
m2.rank=2;
m2.site_name="롯데시네마";
MovieInfo m3 = new MovieInfo();
m3.title="다크 나이트 라이즈(2012)";
m3.director="크리스찬 베일, 마이클 케인, 게리 올드만, 앤 해서웨이, 마리옹 꼬띠아르";
m3.actor="크리스토퍼 놀란";
m3.reserve=7.5;
m3.rank=3;
m3.site_name="메가박스"; //m1,m2,m3 site_name 모두 메가박스가 됨
MovieInfo.site_name="서울극장";
System.out.println("영화관:"+m1.site_name); //서울극장
m3.title="원 데이(2011)";
System.out.println("영화명:"+m1.title); //#살아있다 그대로 유지
System.out.println("영화명:"+m3.title); //원 데이로 변경
}
}
변수설정
/*#살아있다(2020)
평점 05.0
2020.06.24 개봉
15세이상관람가
감독 조일형 주연 유아인, 박신혜
예매 2위
*/
public class MovieVO {
int mno; // 구분
int type;
String title;
double score;
String regdate;
String grade;
String director;
String actor;
int rank;
String poster;
String story;
}
import java.util.*;
import java.awt.*;
import javax.swing.*;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import java.awt.event.*;
import java.net.*;
public class MovieMain extends JFrame implements ActionListener{
JButton b1,b2,b3,b4,b5; //멤버변수의 초기화
// JLabel la = new JLabel(); //그림출력
static MovieVo[] movies = new MovieVo[20];
JPanel pan = new JPanel();
// MovieMain m = new MovieMain()
MovieMain() {
b1=new JButton("현재상영영화");
b2=new JButton("개봉예정영화");
b3=new JButton("박스오피스(주간)");
b4=new JButton("박스오피스(월간)");
b5=new JButton("박스오피스(연간)");
JPanel p = new JPanel();
p.add(b1);p.add(b2);p.add(b3);p.add(b4);p.add(b5);
add(p);
setLayout(null);
//p.setBounds(x, y, width, height);
p.setBounds(10, 15, 1280, 35);
//la.setBounds(10, 60, 200, 350);
pan.setBounds(10, 60, 1280, 900);
//URL url = new URL("https://movie-phinf.pstatic.net/20200624_189/1592965781317Puv47_JPEG/movie_image.jpg");
//la.setIcon(new ImageIcon(getImage(new ImageIcon(url),200,350)));
//}catch(Exception ex) {}
//add(la);
add(pan);
//setSize(width, height);
setSize(1300, 1000);
try {
movieData(1);
imagePrint();
}catch(Exception ex) {ex.printStackTrace();}
setVisible(true);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
}
Image getImage(ImageIcon ii,int w,int h)
{
Image dimg = ii.getImage().getScaledInstance(w, h,
Image.SCALE_SMOOTH);
return dimg;
}
void imagePrint() throws Exception {
pan.setLayout(new GridLayout(4,5,8,8));
pan.removeAll();
for(movieVo vo:movies){
if(vo.poster!=null){
URL url=new URL(vo.poster);
pan.add(new JLabel(new ImageIcon(getImage(new ImageIcon(url),250,280))));
}
}
pan.validate();
}
static void movieData(int no) throws Exception {
String url="";
switch(no) {
case 1:
url="https://movie.daum.net/premovie/released";
break;
case 2:
url="https://movie.daum.net/premovie/scheduled";
break;
case 3:
url="https://movie.daum.net/boxoffice/weekly";
break;
case 4:
url="https://movie.daum.net/boxoffice/monthly";
break;
case 5:
url="https://movie.daum.net/boxoffice/yearly";
break;
}
/*
* <div class="info_movie">
* <h1>aaa</h1> => text
<span class="thumb_movie bg_noimage">
<img src="//img1.daumcdn.net/thumb/C236x340/?fname=https://t1.daumcdn.net/movie/3986610f921d4371be92d6184bf75dc1c74d80e2" class="img_g" alt="" onload="noImageOnLoad($(this))">
*/
// //img1.daumcdn.net/thumb/C236x340/?fname=https://t1.daumcdn.net/movie/3986610f921d4371be92d6184bf75dc1c74d80e2
Document doc=Jsoup.connect(url).get();
Elements image=doc.select("div.info_movie span.thumb_movie img.img_g");
for(int i=0;i<20;i++)
{
movies[i]=new MovieVO();
String temp=image.get(i).attr("src");
movies[i].poster=temp.substring(temp.indexOf("=")+1);
}
}
public static void main(String[] args) throws Exception{
UIManager.setLookAndFeel("com.jtattoo.plaf.hifi.HiFiLookAndFeel");
new MovieMain();
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==b1)
{
try
{
movieData(1);
imagePrint();
}catch(Exception ex) {}
}
else if(e.getSource()==b2)
{
try
{
movieData(2);
imagePrint();
}catch(Exception ex) {}
}
else if(e.getSource()==b3)
{
try
{
movieData(3);
imagePrint();
}catch(Exception ex) {}
}
else if(e.getSource()==b4)
{
try
{
movieData(4);
imagePrint();
}catch(Exception ex) {}
}
else if(e.getSource()==b5)
{
try
{
movieData(5);
imagePrint();
}catch(Exception ex) {}
}
}
}
성적 계산
import java.util.*;
//성적 계산
//학생 정보 데이터형을 제작 => 사용자 정의 데이터형
class Student{
String name; //null => 모듬 클래스 (주소) 주소가 없는 경우 (null)
int kor; // 0 지역변수는 지저안하면 오류나지만 멤버변수로 선언된 변수는 자동으로 초기값 들어감
int eng;
int math;
int total;
double avg; // 0.0
int rank;
}
public class MainClass {
static void process() {
Student[] std=new Student[3]; // 3명
// int[] arr = new int[3] ==> {0,0,0}
// 클래스 ==> null
// 입력 => 초기값
Scanner scan = new Scanner(System.in);
for(int i=0; i<std.length; i++) {
// 메모리 할당
std[i] = new Student(); //new를 통해 저장공간 만들어야함
System.out.print("이름 입력:");
std[i].name = scan.next(); //nextLine()은 \n까지 읽기 때문에 오류남
System.out.print("국어 점수 입력:");
std[i].kor = scan.nextInt();
System.out.print("영어 점수 입력:");
std[i].eng = scan.nextInt();
System.out.print("수학 점수 입력:");
std[i].math = scan.nextInt();
std[i].total = std[i].kor+std[i].eng+std[i].math;
std[i].avg = std[i].total/3.0;
}
for(Student s:std) {
System.out.println(s.name+" "+s.kor+" "+s.eng+" "+s.math+" "+s.total+" "+s.avg);
}
}
public static void main(String[] args) {
process();
}
}
반응형
'Back-end > Java' 카테고리의 다른 글
JAVA의 정석 21일차 - 객체지향 캡슐화, 상속 (0) | 2020.07.13 |
---|---|
JAVA의 정석 20일차 - 클래스 생성 (0) | 2020.07.10 |
JAVA의 정석 17일차 - 메소드 응용 (0) | 2020.07.07 |
JAVA의 정석 16일차 - 메소드 (0) | 2020.07.06 |
JAVA의 정석 15일차 - 변수, 연산자, 제어문, 배열, 문자열 복습 (0) | 2020.07.03 |
Comments