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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package com.test;
 
public class static {
 
    //private int num; //x
    //private static int num2; //o
    
    public static void main(String[] args) {
        
        //num = 100; //x
        //num2 = 100; //o
        
        //Ex36_static.java
        
        
        //객체 멤버 접근 -> 객체 변수를 통해서.,
        StaticTest t1 = new StaticTest();
        t1.a =10;
        //t1.b =20;
                
        //정적 멤버 접근 -> 클래스명을 통해서..
        StaticTest.b = 20;
        
        m1();
        //m2(); //static을 없애고 굳이 호출해야겠다면 이렇게.,
        Ex36_static ex = new Ex36_static();
        ex.m2();
        
    }
 
    private void m2() {
        // TODO Auto-generated method stub
        
    }
 
    private static void m1() {
        // TODO Auto-generated method stub
        
    }
}
 
 
class StaticTest {
    
    public int a = 10;            //객체변수
    public static int b = 20//정적변수
    
    //객체 메소드 -> 멤버 변수 접근(객체 변수 접근)
    public void m1() {
        System.out.printf("a = %d\n", a);
        System.out.printf("a = %d\n", b);
    }
    //정적 메소드 -> 멤버 변수 접근(정적 변수 접근)
    public static void m2() {
        //정적 영역에서는 this 키워드를 인식 못하기 때문..****
        //System.out.printf("a = %d\n", a); ->a에 빨간줄 뜸
        System.out.printf("a = %d\n", b);
    }
}
cs


'WEB > JAVA' 카테고리의 다른 글

CONSTRUCTOR(생성자)2  (0) 2015.05.22
CONSTRUCTOR(생성자)1  (0) 2015.05.22
STATIC(정적)1  (0) 2015.05.22
ACCESS(접근지정자)  (0) 2015.05.22
CLASS  (0) 2015.05.22
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package com.test;
 
public class static {
 
    public static void main(String[] args) {
        
        //static, 정적
        //1. (정적)메소드 <-> 객체메소드
        //2. (정적)변수 <-> 객체변수
        //--------------------------
        
        //3.student의 인스턴스 만들기
        //정적변수를 접근하는 방법
        Student2.school = "역삼중학교"//정적변수 접근
        
        Student2 s1 = new Student2();
        s1.setName("홍길동");
        s1.name = "홍길동"//객체변수 접근
        
        Student2 s2 = new Student2();
        s2.setName("아무게");
        //s2.setSchool("역삼중학교");
        
        Student2 s3 = new Student2();
        s3.setName("하하하");
        //s3.setSchool("역삼중학교");
        
        
    }
}
 
//조건] Student -> 학생 객체 : 역삼중학교 학생들.,
class Student2 {
    
    //클래스 멤버 변수의 생명 주기(객체 변수)
    //    - 생성 : 객체가 생성될떄
    //    - 소멸 : 객체가 소멸될때
    
    //1.멤버변수 만들기
    public String name; //객체변수
    private int kor;
    private int eng;
    private int math;    
    
    //private String school;      -> 개인데이터 -> 공용데이터
    //클래스 멤버 변수의 생명 주기(정적 변수)
    //    - 생성 : 프로그램이 시작될때..(main메소드 실행 전에..)
    //    - 소멸 : 프로그램이 종료될때..(main메소드 종료 후에..)
    public static String school; //정적변수, 공용변수
    
    
    //2. getter/setter 만들기(일괄)
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public int getKor() {
        return kor;
    }
    
    public void setKor(int kor) {
        this.kor = kor;
    }
    
    public int getEng() {
        return eng;
    }
    
    public void setEng(int eng) {
        this.eng = eng;
    }
    
    public int getMath() {
        return math;
    }
    
    public void setMath(int math) {
        this.math = math;
    }
    
/*    public String getSchool() {
        return school;
    }
    
    public void setSchool(String school) {
        this.school = school;
    }*/
    
}
cs


'WEB > JAVA' 카테고리의 다른 글

CONSTRUCTOR(생성자)1  (0) 2015.05.22
STATIC(정적)2  (0) 2015.05.22
ACCESS(접근지정자)  (0) 2015.05.22
CLASS  (0) 2015.05.22
PACKAGE  (0) 2015.05.22
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
package com.test;
 
import java.util.Calendar;
 
public class access {
    
    public static void main(String[] args) {
        
        //접근 지정자, Access Modifier
        //    - 클래스 멤버(변스, 메소드)의 보안 제어(접근 권한)
        //    - 캡슐화, 은닉화, 인터페이스 등.,
        
        
        //1. public
        //    - 클래스 멤버를 공개할 때 사용(100%)
        //    - 어디서든 접근 가능
        
        //2. private
        //    - 클래스 멤버를 비공개할 때 사용(100%)
        //    - 외부에서는 접근 불가능
        
        //ex] item 인스턴스 만들기
        Item item1 = new Item();
        item1.a =10;//공개
        //item1//.b 는 비공개
        
        
        //ex] emloyee 인스턴스 만들기 
//        Employee e1 = new Employee();  
//        e1.name = "홍길동";
//        e1.age = 30;
//        
//        Employee e2 = new Employee();
//        e2.name = "오늘은 날씨가 참 좋네요~ 반갑습니다.~";
//        e2.age = 100000000;        -> public으로 열어놓으면 nono..
        
        //->private로 
        Employee e3 = new Employee();
        e3.test("홍길동길동길동홍길동홍길동");
        e3.setAge(20);
        
        System.out.println(e3.getName()); //3번째 사람의 이름을 알고싶다?
        System.out.println(e3.getAge());
        
        
        //ex) baby 인스턴스
        Baby b1 = new Baby();
        System.out.println(b1.getParent());
        //b1.setParent("하하하");
        b1.setName("호호호");
        b1.setAge(3);
        System.out.println(b1.getAge());
        System.out.println(b1.getBirthYear());
    }
}
 
class Item { //영역, 교실의 개념
    public int a;
    private int b; //외부에서는 볼 수 없다. 캡슐환
    
    public void test() {
        System.out.println(a);
        System.out.println(b);
    }
}
 
 
class Baby {
    
    private String name;
    private int age;
    private String parent = "홍길동";
    
    //getter/setter 활용
    
    //1. 읽기 전용 멤버
    public String getParent() {
        return this.parent;
    }
    
    //2. 쓰기 전용 멤버
    public void setName(String name) {
        this.name = name;
    }
    
    //3. 읽기/쓰기 멤버
    public void setAge(int age) {
        this.age = age;
    }
    public int getAge() {
        return this.age;
    }
    
    //4. 가공(계산), 가상 멤버
    public int getBirthYear() {
        Calendar now = Calendar.getInstance();
        
        return now.get(Calendar.YEAR) - age - 1;
    }
    
}
 
 
 
 
class Employee {
    
    //접근 지정자 사용시.,
    //1. 무조건 멤버 변수는 private
    //2. 1번이 외부와 소통할 일이 있으면., setter/getter 생성
    //        -> 필요한 유효성 검사 + 가공
    //3. 멤버 메소드는 private
    //4. 필요에 따라 일부 public
    
    //멤버 변수는 절대로 public을 사용하지 말것!!** -> private에.,
    //public String name;
    //public int age;
    
    private  String name; //파란색:멤버변수
    private int age; 
    private String address;
    
    //setter, getter의 역할 -> 인터페이스
    
    //setter
    public void Setaddress(String address) {
        //클래스 멤버변수와 지역변수 충돌 -> 허용o, 해결?-> this붙은애가 멤버 변수가 됨
        //this : 객체 지정(접근) 연산자
        //    -> 현재 this를 사용중인 메소드가 소속된 인스턴스를 가르키는 표현
        this.address = address; 
        //this.
    }
    
    //getter
    public String getAddress() {
        return this.address;
    }
    
    
    public void test(String str) {
        if (str.length() >= 2 && str.length() <= 5)
            this.name = str;
    }
    
    public String getName() {
        return name;
    }
    
    public void setAge(int n) {
        if (n >= 1 && n <= 120)
            age = n;
    }
    
    public int getAge() {
        return age;
    }
    
}
cs


'WEB > JAVA' 카테고리의 다른 글

STATIC(정적)2  (0) 2015.05.22
STATIC(정적)1  (0) 2015.05.22
CLASS  (0) 2015.05.22
PACKAGE  (0) 2015.05.22
RANDOM(난수생성)  (0) 2015.05.22
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
 
package com.test;
 
import java.util.Random;
import java.util.Scanner;
 
public class Class {
    
    public static void main(String[] args) {
 
        
        //m1();
        m2();     
             
         //추가] 학생 100명으로 늘리기
             
    }
 
    
    
    private static void m2() {
        
        //추가] 학생 100명으로 늘리기 -> 난수 발생
        Scanner scan = new Scanner(System.in);
        Member[] members = new Member[100];
        Random rnd = new Random();
        
        //이름
        String[] name1 = {"김""이""박""최""정"};
        String[] name2 = {"민""효""세""혁""동""길""준""하""호""현"};
        //주소
        String[] address1 = {"서울시""인천시""부산시""광주시""제주시"};
        String[] address2 = {"강남구""강서구""강동구""강북구""동대문구"};
        String[] address3 = {"역심동""도곡동""길동""연희동""제기동"};
        //전화번호
        String[] tel = {"010""019""017""011"};
        
        
        for (int i=0; i<members.length; i++) {
            members[i] = new Member();
            
            //학생 정보 입력 -> 난수 처리
            members[i].name = name1[rnd.nextInt(name1.length)] 
                            + name2[rnd.nextInt(name2.length)] 
                            + name2[rnd.nextInt(name2.length)];             
            
            members[i].age = rnd.nextInt(41+ 20//나이:20~60
            
            members[i].address = address1[rnd.nextInt(address1.length)]
                                 + address2[rnd.nextInt(address2.length)]
                                 + address3[rnd.nextInt(address3.length)];
            members[i].tel = tel[rnd.nextInt(tel.length)] + "-" + rnd.nextInt(10)
                    + rnd.nextInt(10+ rnd.nextInt(10+ rnd.nextInt(10+ "-" + rnd.nextInt(10)
                    + rnd.nextInt(10+ rnd.nextInt(10+ rnd.nextInt(10);
        }
        
        //확인용
        for (int i=0; i<members.length; i++) {
            members[i].hello();
        }
        
        
    }
 
    
    
    private static void m1() {
        //3. 객체 만들기 (인스턴스)
        Member m1 = new Member();
        m1.name = "홍길동";
        m1.age = 20;
        m1.address = "서울시 영등포구 문래동";
        m1.tel = "010-2578-5413";
        
        //4. 학생 3명 -> 사용자입력 (배열)
        Scanner scan = new Scanner(System.in);
        Member[] members = new Member[3]; //방3개 만들기
                
            //루프돌리기
             for (int i=0; i<members.length; i++) {
                 members[i] = new Member(); //멤버가 생성됨
                 //members[i].name = "홍길동"; //아직 방만 있는 상태
                 
                 System.out.print("이름 : ");
                 members[i].name = scan.nextLine();
                 
                 System.out.print("나이 : ");
                 members[i].age = scan.nextInt();
                 scan.nextLine();
                 
                 System.out.print("주소 : ");
                 members[i].address = scan.nextLine();
                 
                 System.out.print("전화번호 : ");
                 members[i].tel = scan.nextLine();
            }
             
             //확인용
             for (int i=0; i<members.length; i++) {
                 members[i].hello();
             }
    }
 
    
}
 
//자바파일에 클래스를 2개 이상 선언한다면.,
//    - public 키워드를 가지는 클래스는 유일해야 한다.(대표 클래스)
//    - public 키워드르를 가진 클래스가 파일명이 된다.
class Member {
    
    //ex] 회원정보관리 프로그램
    //1.
    public String name;        //회원명    
    public int age;        //나이
    public String address;    //주소
    public String tel;        //전화번호
    
    //2.
    public void hello() {
        System.out.printf("저는 %s입니다. 나이는 %d살이고 사는 곳은 %s입니다. 전화번호는 %s입니다.\n"
                            ,name
                            ,age
                            ,address
                            ,tel);
    }
}
cs


'WEB > JAVA' 카테고리의 다른 글

STATIC(정적)1  (0) 2015.05.22
ACCESS(접근지정자)  (0) 2015.05.22
PACKAGE  (0) 2015.05.22
RANDOM(난수생성)  (0) 2015.05.22
ARAARY(배열)  (0) 2015.05.22
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
 
package com.test;
 
public class Package {
 
    public static void main(String[] args) {
        
        //패키지
        //    - 클래스를 분류하는 단위(폴더)
        
        //클래스 사용 시
        //1. 같은 패키지 내의 클래스끼리는 항상 참조 가능
        //2. 다른 패키지 내의 클래스끼리는 명시적 참조를 해야 사용 가능
        //        - import 패키지명.클래스명;
        //        - import 패키지명.*;
        
        
        //pen 클래스 사용해서 객체 생성(1)
        //ex]
        Pen p1 = new Pen();
        p1.color = "red";
        p1.ink = 100;
        
        Pen p2 = new Pen();
        p2.color = "blue";
        p2.ink = 200;
        
        
        String c1 = "red";
        int i1 = 100;
        
        String c2 = "blue";
        int i2 = 200;
        
        //Pen  100개가 된대., -> 배열
        String[] colors = new String[100]; //펜 색상 100개
        int[] inks = new int[100]; //펜 잉크량 100개,   1set
        
        colors[0= "yellow";
        inks[0= 100;
        
        
        Pen p; //이렇게 만들 수 있는 애들은.,
        Pen[] ps = new Pen[100]; //이렇게 만들수도 있다. Pen 타입의 객체가 '들어가는 방' 100개, 아직 펜이 안들어간 상태임
        //ps[0] = new Pen(); //0번째 방에 펜을 넣어야 함.,
        
        for (int i=0; i<ps.length; i++) { //i번째 방에 펜을 넣겠따
            ps[i] = new Pen();
            ps[i].color = "black";
            ps[i].ink = 100;
        }
        
        Pen p3 = new Pen();
        Pen p4 = null
        System.out.println(p3.ink);
        
        //에러] NullPointerException, 널참조(NullReferenceException)
        //    -> 변수는 있지만 그 안에 객체가 없을 때 발생. 변수 만들어진 시점에서 해결, 객체 유무 확인
        System.out.println(p4.ink); //이렇게 하면 에러남~
        
        
    }
    
}
 
cs


'WEB > JAVA' 카테고리의 다른 글

ACCESS(접근지정자)  (0) 2015.05.22
CLASS  (0) 2015.05.22
RANDOM(난수생성)  (0) 2015.05.22
ARAARY(배열)  (0) 2015.05.22
CALENDAR  (0) 2015.05.22
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
 
package com.test;
 
import java.util.Random;
 
public class Random {
    
    public static void main(String[] args) {
        
        //난수 생성기
        //    - 임의의 수를 발생 시키는 생성기
        //    - Random 클래스
        //    - 특성
        
        //동시 임포트] Ctrl + Shift + O 
        
        
        //Ex]
        Random rnd = new Random();
        //int n= rnd.nextInt();     //임의의 수 1개를 반환(int 범위내의)
        //System.out.println(n);
        
            //제어., (연속된)범위설정
            for (int i=0; i<10; i++) {    //로또생성기st..
                //0~9 난수생성
                int n = rnd.nextInt(10);
                System.out.println(n);
                
                
                //1~14
                //int n = rnd.nextInt(10);
                //n++;
                
                //1~10
                //int n = rnd.nextInt(10) +1;
                
                //5~12
                //int n = rnd.nextInt(16) +5; 
                
                //5~12 15~20
                //int n = rnd.nextInt(10) +1; //이런거 안된다고..
                /* int[] nums = {5,6,7,8,9,10,11,12,13,14,15,16,17,18,1,20}; //쓰고 싶으면 이렇게., 난수를 방번호로 쓰겠다.
                int index = rnd.nextInt(nums.length); //이중에 방번호 하나를 주겠다.
                System.out.println(nums[index]);
                
                String[] names = {"홍길동", "아무게", "하하하"};
                int index2 = rnd.nextInt(names.length);
                System.out.println(nums[index2]); */
                
                                
                    //예제
                    System.out.println(rnd.nextDouble());
                    System.out.println(rnd.nextDouble()); //0~1
            }
    }
 
}
 
cs


'WEB > JAVA' 카테고리의 다른 글

CLASS  (0) 2015.05.22
PACKAGE  (0) 2015.05.22
ARAARY(배열)  (0) 2015.05.22
CALENDAR  (0) 2015.05.22
StringBuilder  (0) 2015.05.22
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
 
package com.test;
 
public class Array {
    
    public static void main(String[] args) {
 
        
        //배열, Array
        //    - 같은 자료형의 변수를 여러개 모아높은 집합
        //    - 하나의 변수명을 가지고 여러개의 공간 접근
        
        //자료형[] 배열명 = new 자료형[길이];
        
        //m1();
        //m2();
        //m3();
        //m4();
        //m5();
        //m6();
        m7();
    }
 
    
    
    
    private static void m7() {
 
        //ex] 2차원 배열(별찍기 문제와 유사)
        int[][] nums = new int[5][5];
            
            //값입력(문제 풀 때는 이곳을 수정)
            int n = 1;
            for (int i=0; i<0; i++) {
                for (int j=0; j<5; j++) {
                    nums[i][j] = n;
                    n++;
                }
            }
            
            /* 역순
            for (int i=4; i>=0; i--) {
                for (int j=4; j>=5; j--) {
                    nums[i][j] = n;
                    n++;
                }
            }*/
            
            /* 
            for (int i=0; i<=5; i++) {
                for (int j=0; j<=5; j++) {
                    nums[j][i] = n;
                    n++;
                }
            }*/
            
            //값출력(건드리지x)
            for (int i=0; i<5; i++) {
                for (int j=0; j<5; j++) {
                    System.out.printf("%4d", nums[i][j]);
                }
                System.out.println(n);
            }
    }
 
 
 
 
    private static void m6() {
 
        //다차원 배열
        
        //Ex] 2차원 배열 -> 2중 for문 사용
        int[][] nums = new int[2][3];
                              //층,호수
        nums[0][0= 100;
        nums[0][1= 200;
        nums[0][2= 300;
        
        nums[1][0= 400;
        nums[1][1= 500;
        nums[1][2= 600;
            //i,j열
            
            //탐색해보기
            for (int i=0; i<2; i++) {
                for (int j=0; j<3; j++) { 
                System.out.printf("nums[%d][%d] = %d\n"
                                    ,i
                                    ,j
                                    ,nums[i][j]);
                }
            }    
            //참고 : 배열만들때
            int[] ns = new int[3];    //o, 권장
            int ns2[] = new int[3];//x
    }
 
 
 
 
    private static void m5() {
 
        //배열 초기화
        //    - 특성 : 방을 만든 직후 초기화를 하지 않아도 자동으로 초기화가 된다    
        //    - 규칙 : 정수형 -> 0 
        //             실수형 -> 0.0, 
        //             문자형 -> \0(null문자)
        //             논리형 -> false
        //             참조형 -> null
        
        //Ex]
        int[] nums = new int[5];        
        System.out.println(nums[0]); //초기화 안한 상태에서 출력해도 0이 들어있따.
        
        //초기화 리스트
        int[] nums2 = new int[5];
        nums2[0= 5;
        nums2[1= 7;
        nums2[2= 2;
        nums2[3= 3;
        nums2[4= 8//쓰기 너무 많음., -> 초기화한다
        
        int[] nums3 = new int[] { 57238 }; //줄이자
        int[] nums4 = { 57238 }; //더줄인 표현
        
        String[] names = {"홍길동""아무게""하하하"}; //줄이기 예제
        
    }
 
 
 
 
    private static void m4() {
 
        //항상된 for문
        //    - foreach문
        //    - 용도 : 배열이나 컬렉션을 대상으로만 사용(탐색)
        //    - 목적 : 읽기전용(수정 작업 불가능), 무조건 첫번째 방부터 마지막 방까지 순서대롤 접근
        //    - 속도가 빠름
        
        //Ex]
        String[] names = new String[5];
        
        names[0= "홍길동";
        names[1= "아무게";
        names[2= "하하하";
        names[3= "호호호";
        names[4= "호호호";
        
            // 1. for문(일괄 탐색이 아닐 경우에 사용)
            for (int i=0; i<names.length; i++) {
                //System.out.println(names[i]);
                names[i] += "씨"//수정 작업 가능
            }
            
            //2. 향상된 for문
                  //요소변수 : 배열
            for (String name : names) { //알아서 0~4번 방의 이름을 불러오고 끝나면 빠져나온다
                System.out.println(name);
                //name += "님"; //수정 작업x
            }
                    //수정작업 했을 시 추가되는.,
                    for (String name : names) { 
                        System.out.println(name);
                    }
                
    }
 
 
 
 
    private static void m3() {
 
        //각 자료형별로 배열 선언
        
        //Ex]
        int[] list1 = new int[3];
        list1[0= 100;
        System.out.println(list1[0]);
            
            //실수타입로 만들어달라
            double[] list2 = new double[3];
            list2[0= 3.14;
            System.out.println(list2[0]);
            //캐릭터 배열로., 
            char[] list3 = new char[3]; //문자열
            list3[0= 'A';
            System.out.println(list3[0]);
            //boolean형 배열로.,
            boolean[] list4 = new boolean[3];
            list4[0= true;
            System.out.println(list4[0]);
            //문자형 배열로.,
            String[] list5 = new String[3];
            list5[0= "홍길동";
            System.out.println(list5[0]);
    }
 
 
 
 
    private static void m2() {
 
        //배열은 길이를 한번 결정하면 절대 수정 불가능한 불편함
        //    - 방을 늘리거나 줄이는 것이 불가능(미리 예측해야.,)
        
        //Ex]
        int[] nums = new int[3];
        nums[0= 10;
        nums[1= 20;
        nums[2= 30;
        //nums[3] = 40; //4번째 방을 만들어도 컴파일은 된다.,
        
        //배열 탐색(원하는 방을 일괄 접근) 루트돌며.,
        int[] nums2 = new int[100];
        for (int i =0; i<nums2.length; i++) {
            nums2[i] = i*i;
        }
        for (int i=0; i<nums2.length; i++) {
            System.out.printf("nums2[%d] = %d\n", i, nums2[i]); 
        }
        
        
    }
 
 
 
 
    private static void m1() {
        
        //ask] 학생 300명의 국어점수 -> 총점, 평균
        int kor1 = 90;
        int kor2 = 80;
        int kor3 = 70;                         //출력까지 작성하고 이제 해줄것..1. 변수 297개 만들고
        
            //총점
            int total = kor1 + kor2 + kor3; //2. 297번 +
            //평균
            double avg = total / 3.0;         //3. 3.0->300.0
            //출력
            System.out.printf("총점 : %d점, 평균 : %.1f\n", total, avg);
        
        //배열선언으로 바꾸기
        //2. 베열 선언(변수 선언) -> 메모리에 공간을 할당받겠다.
            int n;
            int[] kors = new int[3]; //new int[300]
            
            //배열첨자(index) -> 상수 or 변수
            kors[0= 95//0번째 방
            kors[1= 85;
            kors[2= 100//다 작성한 후에 297개를 더 만들긴 해야함., ->  해결 : for문의 i<값을 수정해주면(300) 가능. 일괄처리기능! 
    
            //추가] 안헷갈리게 구분
            System.out.println("홍길동".length());
            System.out.println(kors.length); //방의 갯수(길이)
            
            //total = kors[0]    + kor[1] + kor [2];        //case1
            total = 0;
            //에러]ArrayIndexOutOfBoundsException
            for (int i=0; i<4; i++) {                    //case2
                total += kors[i];
            }            
            
            avg = total/ (double)kors.length;
            System.out.printf("총점 : %d점, 평균 : %.1f\n", total, avg);
            
    }
}
 
cs


'WEB > JAVA' 카테고리의 다른 글

PACKAGE  (0) 2015.05.22
RANDOM(난수생성)  (0) 2015.05.22
CALENDAR  (0) 2015.05.22
StringBuilder  (0) 2015.05.22
STRING2  (0) 2015.05.22
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 
package com.test;
 
import java.util.Calendar;
 
public class Calendar {
 
    public static void main(String[] args) {
        
        //ask] 2014.12 달력 만들기
        //알아야 되는 2가지?
        //1. 해당월 마지막일? -> 31 
        //2. 해당월 1일 무슨요일? -> 월
        //3. 위 2가지보다 Calendar를 사용하는 게 편하다.
        
        //Ctrl + shift + f
        for (int m = 0; m < 12; m++) { //end:루프돌려서 올해 달력 만드려면 이걸 삽입해.., 특정 달만 뽑으려면 안써도 돼
            
                int year = 2014;
                int month = m; //***루프값, 요거 바꾸기
                Calendar c = Calendar.getInstance(); //1.현재시간얻어오기
                c.set(year, month, 1); //2014-12-01;   2. 시간 수정하기
                
                //1.해당월 마지막일?
                int lastDay = c.getActualMaximum(Calendar.DATE); //31
                //2. 1일은 무슨요일?
                int index = c.get(Calendar.DAY_OF_WEEK); //요일, 일(1) - 토(7)
                
                //출력
                System.out.printf("          ★ %d년 %d월  ★\n", year, month+1);
                System.out.println("일\t월\t화\t수\t목\t금\t토");
                System.out.println("==================================================");
                
                //1일 전에 공백 찍기
                for (int i=1; i<index; i++) {
                    System.out.print("\t");
                }
                        
                //날짜찍기...
                for (int i=1; i<=lastDay; i++) {
                    System.out.printf("%2d\t", i);
                                
                    //1. 토요일 찾기 //엔터치기
                    //if (i%7 == 6){
                    if (((index) + i-1) % 7 == 0) { //(월이나 일이 바뀌면 틀어지기 때문에 값을 바꾼다)
                        System.out.println();
                    }
                }
                System.out.println();
                System.out.println();
                System.out.println();
        }
    }
}
 
cs


'WEB > JAVA' 카테고리의 다른 글

RANDOM(난수생성)  (0) 2015.05.22
ARAARY(배열)  (0) 2015.05.22
StringBuilder  (0) 2015.05.22
STRING2  (0) 2015.05.22
STRING1  (0) 2015.05.22
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
 
package com.test;
 
import java.util.Calendar;
 
public class StringBuilder {
 
    public static void main(String[] args) {
        
        //StringBuilder 클래스
        
        
        //m1();
        m2(); //m1의 테스트
        m3(); //m2와 연결해서 호출
        
    }
 
    
    
    private static void m3() {
 
        //tes2] test1을 StringBuilder로 바꿔보기
        System.out.println("StringBuilder 테스트");
        
        Calendar start = Calendar.getInstance(); 
        
        //업무
        StringBuilder str = new StringBuilder("홍길동"); //여기 수정됨
        for (int i=0; i<100000; i++) {
            str.append("."); //여기 수정됨
        }
        
        
        Calendar end = Calendar.getInstance(); 
        
        long startTick = start.getTime().getTime();
        long endTick = end.getTime().getTime();
        long gap = endTick - startTick; 
        
        System.out.printf("총 %s자이고, 소요시간 %d 밀리초\n"
                            , str.length()
                            , gap);
    }
 
 
 
    private static void m2() {
 
        //test1] String
        System.out.println("String 테스트");
        
        Calendar start = Calendar.getInstance(); //시작 시간
        
        //업무
        String str = "홍길동";
        for (int i=0; i<100000; i++) {
            str += ".";
        }
        
        //for가 돌고난 후의 시간이 또 필요함.,
        Calendar end = Calendar.getInstance(); //종료시간
        
        long startTick = start.getTime().getTime();
        long endTick = end.getTime().getTime();
        long gap = endTick - startTick; //소요시간
        
        System.out.printf("총 %s자이고, 소요시간 %d 밀리초\n"
                            , str.length()
                            , gap);
        
    }
    
    
 
    private static void m1() {
        
        //StringBuilder
        //    - 잦은 조작에 유리한 클래스
        String s1 = "홍길동";
        String s1 = new String("홍길동"); //정석st.
        StringBuilder s3 = new StringBuilder("홍길동");
        
        System.out.println(s1);
        System.out.println(s3); //둘 다 같은.,
        
        //하지만., 사용방식이 다르다
        s1 = s1 + "님";  //s1 += "님"
        s3.append("님"); //s3 += "님"
        
        System.out.println(s1);
        System.out.println(s3);
    }
 
}
 
cs


'WEB > JAVA' 카테고리의 다른 글

ARAARY(배열)  (0) 2015.05.22
CALENDAR  (0) 2015.05.22
STRING2  (0) 2015.05.22
STRING1  (0) 2015.05.22
FOR문2  (0) 2015.05.22
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
 
package com.test;
 
public class String {
 
    public static void main(String[] args) {
 
        //문자열이 가지는 특성
        //    - 자바에서 문자열은 불변(immutable)이다.
        //    - 문자열은 수정이 불가능하다.
        
        //자료형
        //1. 값형, Value Type
        //    - 8가지
        //    - 공간(변수)이 값을 가지고 있는 타입
        //    - 값이 변해도 공간의 크기가 일정하면(변하지 않으면) 값형
        
        //2. 참조형, Reference Type
        //    - String, 클래스, 배열.. -> 클래스
        //    - 공간(변수)이 주소을 가지고 있는 타입
        //    - 값이 변하면 공간의 크기가 가변이면(변하면) 참조형
        
        //Stack과 Heap 메모리 개념
        int a = 10;          //값형
        
        String b = "홍길동"//참조형    
        b = "홍길동님 안녕하세요~";
        
        
        //불변의 목적
        //    - 자바의 문자열 비교는 "=="사용불가, 대신 equals() 메소드를 사용
        
        int n1 = 10;            //값형
        int n2 = 10;
        int n3 = 5;
        n3 += 5;
        
        String s1 = "홍길동";    //참조형
        String s2 = "홍길동";
        String s3 = "홍";
        s3 += "길동";
        
        System.out.println(s1 == s2);
        System.out.println(s1 == s3);
        
        //i. "=="를 사용한 의도(목적)? 등호
        //    - s1이 가지고 있는 문자열과 s2(s3)가 가지고 있는 문자열이 같은 문자열
        System.out.println(s1 == s2); //true
        System.out.println(s1 == s3); //false
        
        //ii. equals() 
        System.out.println(s1.equals(s2)); //true
        System.out.println(s1.equals(s3)); //true
        
        
                //불변의 특성상 문자열로 되도록 피해야되는 행동
                //1. 큰 문자열 수정
                String str = "안녕하세요~ 안녕하세요~"
                            + "안녕하세요~ 안녕하세요~"
                            + "안녕하세요~ 안녕하세요~"
                            + "안녕하세요~ 안녕하세요~"
                            + "안녕하세요~ 안녕하세요~"
                            + "안녕하세요~ 안녕하세요~"
                            + "안녕하세요~ 안녕하세요~";
                        str += "."//->점찍는 이런거 하지 마라... 대형 쓰레기를 생성.,
                        System.out.println(str);
                
                //2. 문자열의 잦은 수정    
                str = "홍길동";
                        
                for (int i=0; i<1000; i++) {
                        str += ".";
                }        
                        
        
    }
 
}
 
cs


'WEB > JAVA' 카테고리의 다른 글

CALENDAR  (0) 2015.05.22
StringBuilder  (0) 2015.05.22
STRING1  (0) 2015.05.22
FOR문2  (0) 2015.05.22
FOR문1  (0) 2015.05.22

+ Recent posts