19.04.03 예외처리, Integer, eqals()

Back-End/Java 2019. 4. 3. 17:08
728x90
반응형

-예외(exception)란?-
컴퓨터 시스템이 동작하는 도중에 예상하지 못한 오류가 발생하는 것을 의미, 예외 상황은 실행되고 있던 프로그램을 비정상적으로 종료시킨다.
따라서 예외처리를 통해 이러한 예외 상황을 처리할 수 있도록 코드의 흐름을 바꾸는 행위가 필요하다.



-예외 처리(exception handling)-
프로그램 실행시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하여 프로그램의 비정상적인 종료를 막고 정상적인 수행을 할 수 있도록 해야한다.
이런 처리를 하기 위해서 기본 형식인 (try - catch - finally) 구문을 사용한다.



-예제 및 실행 결과-

(오류가 발생되지 않아서 finally 구문만 실행)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package chap03.operations3;
 
public class operations3 
{
    public static void main(String[] args) 
    {
        try 
        {
            int a = 100000; //에러 감지블록, 예외 발생 예상지역
        }
        catch(ArithmeticException e) //오류가 발생했을때만 실행한다.
        {
            System.out.println("catch문 = 오류가 발생"); //에러 발생시 처리 내용
        }
        finally //오류가 발생하든 안하든 무조건 실행한다.
        {
            System.out.println("finally = 무조건 실행"); //오류의 발생여부와 상관없이 실행할 내용
        }
    }
}
 
cs






출처

https://blog.naver.com/vnemftnsska2/221385280969





-Int, Integer 차이-


출처
https://blog.naver.com/gngh0101/221114243791



-eqals(), == 차이-


eqals()
객체 비교 메서드
두 객체의 값이 같은지 확인, 문자열의 데이터/내용을 기반으로 비교
기본 유형(Primitive Types)에 대해서는 적용할 수 없다.
반환형태 : boolean type
같은 내용이면 return true, 다른 내용이면 return false


==
항등 연산자이다.
두 객체가 같은 메모리 공간을 가리키는지 확인한다.
반환형태 : boolean type
같은 주소면 return true, 다른 주소면 return false
모든 기본 유형에 대해 적용할 수 있다.
ex) byte, short, char, int, float, double, boolean



출처

https://gmlwjd9405.github.io/2018/10/06/java-==-and-equals.html

728x90
반응형
:

19.04.02 예약어,패키지,println,printf,캐스팅,boolean

Back-End/Java 2019. 4. 2. 16:20
728x90
반응형

- 예약어란? -


java에 의미가 약속되어 있는 단어를 뜻한다.

java에 이미 예약어로 등록되어 있는 단어는 속성의 변수명, 메소드명으로 사용할 수 없으며

프로그래밍 과정에서 이렇게 특정 의미가 있는 단어를 프로그래머가 식별자로 사용하게 되면

에러나 버그가 발생할 수 있다.


-종류-

public : 클래스, 메소드, 변수 등에 사용되는 예약어로 외부에 공개하겠다는 뜻

class : 클래스 정의시 사용

return : 메소드에서 어떤 값을 반환할 때 사용하는 예약어

void : 메소드에서 반환값이 없을때 사용

this : 객체의 인스턴스를 참조하여 클래스가 만들어낼 객체의 주소값

등등...


출처

http://blog.naver.com/PostView.nhn?blogId=jin750226&logNo=120192497821



- 패키지란? -


하나의 클래스 안에서 같은 이름의 클래스들을 사용하기 위한 방법.

패키지는 폴더와 유사하다.

클래스가 많아짐에 따라서 같은 이름을 가진 클래스가 생겨날 가능성이 높아지게 되는데

이름의 충돌을 방지하기 위해 고안된 것이 패키지라고 할 수 있다.


출처

https://opentutorials.org/course/2517/14135



- println과 printf -



println은 java에서의 기본 출력문으로 출력하고 싶은 내용 그대로를 출력한다.


printf는 기본 출력문인 println()은 변수의 값을 그대로 출력하므로, 값을 변환하지 않고는 다른 형식으로 출력할 수 없다.

반면에 printf는 지시자를 통해 변수의 값을 여러 가지 형식으로 변환하여 출력할 수 있다.

(c언어때와 동일한 형식으로 사용)


출처

https://keep-cool.tistory.com/15



- 캐스팅이란? -



모든 리터럴과 변수에는 타입이 있고, 서로 다른 타입의 값으로 연산을 수행해야 하는 경우가 발생한다.

모든 연산은 기본적으로 같은 타입의 피연산자간에만 수행될 수 있으므로, 서로 다른 타입의 피연산자간의 연산을 수행해야하는 경우,

연산을 수행하기 전에 형변환을 통해 같은 타입으로 변환해주어야 한다.


-예제-


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
package sec02.exam06_boolean;
 
public class BooleanExample 
{
    public static void main(String[] args) 
    {
        
        int intValue = 1030103020;
        byte byteValue = (byte) intValue;
        System.out.println(byteValue);
        //intValue의 값은 byte가 담을수 있는 값의 범위보다 큰 값이므로 (byte)라는 캐스팅 연산자를
        //사용해서 1byte씩 쪼개서 끝에있는 1byte만 byteValue 변수에 저장한다. 
        //만약 byte형태에 충분히 수용될수 있는 값이면 변화되지 않고 그대로 값이 전달된다.
        
        int Value = 'A';
        char charValue = (char) Value;
        System.out.println(charValue);
        
        
        
        boolean stop = false;
        
        if(stop) 
        {
            System.out.println("중지합니다");
        }
        else
        {
            System.out.println("시작합니다");
        }
    }
}
 
cs


-출력된 값-


출처

https://linuxism.ustd.ip.or.kr/1551


참고 동영상

https://cafe.naver.com/thisisjava







- boolean -

참 또는 거짓의 값을 갖는 자료값을 boolean(부울) 자료형 이라고 한다.
boolean 자료형에 대입되는 값은 참(true) 또는 거짓(false)만 가능하다.
또한 boolean자료형에는 boolean연산의 결과값이 대입될 수도 있고, 주로 조건문의 판단 기준으로 많이 사용된다.

출처
https://wikidocs.net/220












728x90
반응형
:

나의 Java 학습 플래닛

Back-End/Java 2019. 4. 1. 20:31
728x90
반응형

Java 학습 일정.xlsx

 

728x90
반응형
:

19.04.01 자바 프로그램 개발 순서, 실행문

Back-End/Java 2019. 4. 1. 16:10
728x90
반응형

자바 프로그램 개발 순서


.java 소스 파일 작성 -> 컴파일러(javac.exe)로 바이트 코드 파일(.class) 생성 -> JVM 구동 명령어(java.exe)로 실행
자바 프로그램을 개발하기 위해서는 우선 파일 확장명이 .java인 텍스트 파일을 생성하고 프로그램 소스를 작성한다.
이렇게 만든어진 파일을 자바 소스 파일이라고 한다. 작성 완료된 자바 소스 파일은 컴파일러(javac.exe)로 컴파일해야 한다.
컴파일이 성공되면 확장명이 .class인 바이트 코드 파일이 생성된다. 예를 들어, 명령 프롬프트에서 Hello.java 소스 파일을 다음과 같이 컴파일하면 Hello.class파일이 생성된다. 


-예제-


1
2
3
4
5
6
7
8
9
10
11
public class Hello    
{
    public static void main(String[] args)
    {
        System.out.println("Hello, welcome to the java world!");
    }    
}
 
 
cs

실행문과 세미콜론(;)


실행문은 변수 선언, 값 저장, 메소드 호출에 해당하는 코드를 말한다.

실행문의 마지막은 반드시 세미콜론(;)을 붙여서 실행문이 끝났음을 표시해주어야 한다.


-예제-

public class Num

{
public static void main(String[] args)
{
int x = 1; //변수 x를 선언하고 1을 저장
int y = 2; //변수 y를 선언하고 2를 저장
int result = x + y; //변수 result를 선언하고 변수 x와 y를 더한 값을 저장
System.out.println(result); //콘솔에 출력하는 메소드 출력
}
}



이클립스 사용


"Hello"문자 출력 결과














728x90
반응형
:

19.03.27 Array Class

카테고리 없음 2019. 3. 28. 00:07
728x90
반응형

*Array Class*

배열을 만들고,  조작하고, 검색 및 정렬하여 공용 언어 런타임에서 모든 배열의 기본 클래스

역할을 수행하도록 하는 메서드를 제공한다. 아래 예제를 참고

 

 

using System;

public class SamplesArray2
{
public static void Main()
{
// Creates and initializes a new three-dimensional Array of type Int32.
Array myArr = Array.CreateInstance(typeof(Int32), 2, 3, 4);
for (int i = myArr.GetLowerBound(0); i <= myArr.GetUpperBound(0); i++)
{
for (int j = myArr.GetLowerBound(1); j <= myArr.GetUpperBound(1); j++)
{
for (int k = myArr.GetLowerBound(2); k <= myArr.GetUpperBound(2); k++)
{
myArr.SetValue((i * 100) + (j * 10) + k, i, j, k);
}
}
}

// Displays the properties of the Array.
Console.WriteLine("The Array has {0} dimension(s) and a total of {1} elements.", myArr.Rank, myArr.Length);
Console.WriteLine("\tLength\tLower\tUpper");
for (int i = 0; i < myArr.Rank; i++)
{
Console.Write("{0}:\t{1}", i, myArr.GetLength(i));
Console.WriteLine("\t{0}\t{1}", myArr.GetLowerBound(i), myArr.GetUpperBound(i));
}

// Displays the contents of the Array.
Console.WriteLine("The Array contains the following values:");
PrintValues(myArr);
}


public static void PrintValues(Array myArr)
{
System.Collections.IEnumerator myEnumerator = myArr.GetEnumerator();
int i = 0;
int cols = myArr.GetLength(myArr.Rank - 1);
while (myEnumerator.MoveNext())
{
if (i < cols)
{
i++;
}
else
{
Console.WriteLine();
i = 1;
}
Console.Write("\t{0}", myEnumerator.Current);
}
Console.WriteLine();
}
}
/*
This code produces the following output.

The Array has 3 dimension(s) and a total of 24 elements.
Length Lower Upper
0: 2 0 1
1: 3 0 2
2: 4 0 3
The Array contains the following values:
0 1 2 3
10 11 12 13
20 21 22 23
100 101 102 103
110 111 112 113
120 121 122 123
*/

 

출처

https://docs.microsoft.com/ko-kr/dotnet/api/system.array?view=netframework-4.7.2

728x90
반응형
:

19.03.27 static

개임개발/과제 2019. 3. 28. 00:00
728x90
반응형

- static -

 

특정 개체가 아니라 형식 자체에 속하는 정적 멤버를 선언할 수 있다.

static 한정자는 클래스, 필드, 메서드, 속성, 연산자 및 생성자와 함께 사용할 수 있지만,

인덱서, 종료자 또는 클래스 이외의 형식에는 사용할 수 없습니다.

 

- static class -

 

정적 클래스는 기본적으로 비정적 클래스와 동일하지만,
정적 클래스는 인스턴스화할 수 없다는 한 가지 차이점이 있습니다.
즉, new 키워드를 사용하여 클래스 형식의 변수를 만들 수 없습니다.
인스턴스 변수가 없기 때문에 클래스 이름 자체를 사용하여 정적 클래스의 멤버에 액세스합니다.
예를 들어 public static 메서드 MethodA를 포함하는 UtilityClass라는 정적 클래스가 있는 경우 다음 예제와 같이
메서드를 호출합니다.

 

double dub = -3.14;
Console.WriteLine(Math.Abs(dub));
Console.WriteLine(Math.Floor(dub));
Console.WriteLine(Math.Round(Math.Abs(dub)));

// Output:
// 3.14
// -4
// 3

 

 

 

출처

https://docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/classes-and-structs/static-classes-and-static-class-members

728x90
반응형

'개임개발 > 과제' 카테고리의 다른 글

19.03.26 상수,열거형식, var 타입 등  (0) 2019.03.27
19.03.26 과제  (0) 2019.03.27
19.03.25 값 복사와 참조 복사  (0) 2019.03.25
19.03.22 오우거 잡기  (0) 2019.03.24
19.03.22 Stack 과 Heap  (0) 2019.03.24
:

19.03.27 반복문 사용 배열 출력 (for,foreach,while)

개임개발/수업내용 2019. 3. 27. 14:42
728x90
반응형
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace study_05
{
    class Unit
    {
        private string v;
 
        public Unit()
        {
 
            
            
            Unit[] array = new Unit[5];
 
            
 
            int[] arr0 = new int[5]; //000000000,int는 값형식이라 0
            Unit[] units = new Unit[5]; //null, 클래스는 참조형식이라 null
            //배열은 array클래스에서 파생된 형식이고, 참조형식이라 null 이다.
            string[] arrNames = { "홍길동""임꺽정""홍상직" };  //배열의 인스턴스
 
 
         
 
 
            for (int i = 0; i<units.Length; i++)
            {
                Unit unit = units[i];
                Console.WriteLine($"for문에서 나오는값 :{arrNames[i]}");
                Console.WriteLine($"for문에서 나오는값 :{arrNames[i+1]}");
                Console.WriteLine($"for문에서 나오는값 :{arrNames[i+2]}");
                break;
            }
            
            foreach (string Unit in arrNames)
            {
               
                System.Console.WriteLine($"foreach문에서 나오는값 :{arrNames[0]}");
                System.Console.WriteLine($"foreach문에서 나오는값 :{arrNames[1]}");
                System.Console.WriteLine($"foreach문에서 나오는값 :{arrNames[2]}");
                break;
 
            }
            
            while (true)
            {
                Console.WriteLine($"while문에서 나오는값 : {arrNames[0]}");
                Console.WriteLine($"while문에서 나오는값 : {arrNames[1]}");
                Console.WriteLine($"while문에서 나오는값 : {arrNames[2]}");
                break;
            }
 
 
            //배열의 길이 파악할때 사용
 
 
 
        }
 
        public Unit(string v)
        {
            this.v = v;
        }
    }
}
 
cs

 


728x90
반응형

'개임개발 > 수업내용' 카테고리의 다른 글

0322 프로그래밍  (0) 2019.03.22
:

19.03.26 와우 게임 (아직 다 못함)

카테고리 없음 2019. 3. 27. 09:24
728x90
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static study_03.GameEnum;
 
namespace study_03
{
    class App
    {
        //생성자 
        public App()
        {
 
        }
    }
}
cs
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace study_03
{
    class GameEnum
    {
        //진영
        public enum eCamp
        {
            none = 0,
            Alliance,
            Horde,
            all = ~none
        }
 
        public enum eAllianceTribe
        {
            none = 0,
            human = 1,
            dwarf = 2,
            nightElf = 4,
            gnome = 8,
            draenei = 16,
            worgen = 32,
            tushuiPandaren = 64,
            voidElf = 128,
            lightforgedDraenei = 256,
            darkIronDwarf = 512,
            kulTiran = 1024,
            all = ~none
     
        }
 
        public enum eHordeTribe
        {
            none = 0,
            orc = 1,
            undead = 2,
            tauren = 3,
            troll = 4,
            bloodElf = 5,
            goblin = 6,
            huojinPandaren = 7,
            nightBorne = 8,
            highmountainTauren = 9,
            magharOcr = 10,
            zandlariTroll = 11,
            all = ~none
        }
 
        public enum ejob
        {
            none = 0,
            paladin = 1,
            knight = 2,
            darkKnight = 3,
            hanTer = 4,
            thief = 5,
            monk = 6,
            powwow = 7,
            wizard = 8,
            priests = 9,
            darkWizard = 10,
            druid = 11,
            devilHunter = 12,
            all = ~none
 
        }
    }
}
 
cs
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace study_03
{
    class Program
    {
        static void Main(string[] args)
        {
            var eCamp = Enum.GetValues(typeof(GameEnum.eCamp));
 
            Console.WriteLine($"선택할 진형의 숫자를 입력해주세요 1.얼라이언스 2.호드");
            string eCampinput = Console.ReadLine();
            int eCampselectedNum;                                    // 입력받을 키를 설정함
            var eCampisSuccessedParse = Int32.TryParse(eCampinput, out eCampselectedNum); //Int32.TryParse는 숫자의 문자열 표현을 해당하는 32비트 부호있는 정수로 변환
            var eCampselectedEnum = (GameEnum.eCamp)eCampselectedNum;
 
            var eCampEnum = GameEnum.eCamp.all;
            var isInclude = (eCampselectedEnum & eCampEnum) != GameEnum.eCamp.none;
 
            if (isInclude)
            {
                Console.WriteLine("선택하신 진형 : {0}이 있습니다.", eCampselectedEnum.ToString());
            }
            else
            {
                Console.WriteLine("선택하신 진형 : {0}은 없습니다.", eCampselectedEnum.ToString());
            }
 
            Console.WriteLine("진영이 선택되었습니다.");
 
            var eCampTibes = Enum.GetValues(typeof(GameEnum.eCamp));    //Enum을 사용해서 GameEnum.eAllianceTribe을 Enum.GetValues 배열에 넣고 그 값을 allianceTibes에 저장함
 
 
 
            if (eCampinput == "1")
            {
            Console.WriteLine($"진영의 선택할 종족의 숫자를 입력해주세요 1.사람 2.드워프 3.나이트엘프 4.노움 5.드레이니 6.워젠 7.판다린 8.공허엘프 9.라이트드레이니 10.다크다워프 11. 쿠테란");
 
            string input = Console.ReadLine();
            int selectedNum;                                    // 입력받을 키를 설정함
            var isSuccessedParse = Int32.TryParse(input, out selectedNum); //Int32.TryParse는 숫자의 문자열 표현을 해당하는 32비트 부호있는 정수로 변환
            var selectedEnum = (GameEnum.eAllianceTribe)selectedNum;
 
            var allianceTibesEnum = GameEnum.eAllianceTribe.all;
            var allianceTibesisInclude = (selectedEnum & allianceTibesEnum) != GameEnum.eAllianceTribe.none;
 
            if (isInclude)
            {
                Console.WriteLine("선택하신 종족 : {0}이 있습니다.", selectedEnum.ToString());
            }
            else
            {
                Console.WriteLine("선택하신 종족 : {0}은 없습니다.", selectedEnum.ToString());
            }
 
            }
            else
            {
                {
                    Console.WriteLine($"진영의 선택할 종족의 숫자를 입력해주세요 1.오크, 2.언데드, 3.타렌, 4.트롤, 5.블러드엘프, 6.고블린,7.휴진팔라진, 8.나이트본, 9.하이마운틴타렌, 10.마셜오크, 11.잔다르트롤");
 
                    string eHordeTribeinput = Console.ReadLine();
                    int eHordeTribeselectedNum;                                    // 입력받을 키를 설정함
                    var eHordeTribeisSuccessedParse = Int32.TryParse(eHordeTribeinput, out eHordeTribeselectedNum); //Int32.TryParse는 숫자의 문자열 표현을 해당하는 32비트 부호있는 정수로 변환
                    var eHordeTribeselectedEnum = (GameEnum.eHordeTribe)eHordeTribeselectedNum;
 
                    var eHordeTribeEnum = GameEnum.eHordeTribe.all;
                    var eHordeTribeisInclude = (eHordeTribeselectedEnum & eHordeTribeEnum) != GameEnum.eHordeTribe.none;
 
                    if (isInclude)
                    {
                        Console.WriteLine("선택하신 종족 : {0}이 있습니다.", eHordeTribeselectedEnum.ToString());
                    }
                    else
                    {
                        Console.WriteLine("선택하신 종족 : {0}은 없습니다.", eHordeTribeselectedEnum.ToString());
                    }
 
                }
                
            }
 
 
            Console.WriteLine($"선택할 직업의 숫자를 입력해주세요. 1.팔라딘, 2.나이트, 3.다크나이트, 4.헌터, 5.도적, 6.수도사, 7.기사, 8.위자드, 9.프리스트, 10.다크위자드, 11.드워드, 12.데빌헌터");
             
     
            string ejobinput = Console.ReadLine();
            int ejobselectedNum;                                    // 입력받을 키를 설정함
            var ejobisSuccessedParse = Int32.TryParse(ejobinput, out ejobselectedNum); //Int32.TryParse는 숫자의 문자열 표현을 해당하는 32비트 부호있는 정수로 변환
            var ejobselectedEnum = (GameEnum.ejob)ejobselectedNum;
 
            var ejobEnum = GameEnum.ejob.all;
            var ejobisInclude = (ejobselectedEnum & ejobEnum) != GameEnum.ejob.none;
 
            if (isInclude)
            {
                Console.WriteLine("선택하신 직업 : {0}이 있습니다.", ejobselectedEnum.ToString());
            }
            else
            {
                Console.WriteLine("선택하신 직업 : {0}은 없습니다.", ejobselectedEnum.ToString());
            }
            
 
 
 
 
                    Console.WriteLine("엔터를 누르세요.");
            string nameinput = Console.ReadLine();
            Console.WriteLine($"이름을 입력하세요.{nameinput}");
 
          
 
                                        // 입력받을 키를 설정함
                                             //Int32.TryParse는 숫자의 문자열 표현을 해당하는 32비트 부호있는 정수로 변환
 
 
 
 
 
 
            //var app = new App();
            Console.ReadKey();
        }
    }
}
 
 
cs


728x90
반응형
: