'Back-End'에 해당되는 글 288건

  1. 2019.04.08 19.04.08 어노테이션,Getter / Setter 메소드
  2. 2019.04.06 19.04.06 Class(필드, 생성자 오버로딩)
  3. 2019.04.05 19.04.05 다차원 배열, 향상된 for문
  4. 2019.04.04 19.04.04 random, Scanner
  5. 2019.04.03 19.04.03 예외처리, Integer, eqals()
  6. 2019.04.02 19.04.02 예약어,패키지,println,printf,캐스팅,boolean
  7. 2019.04.01 나의 Java 학습 플래닛
  8. 2019.04.01 19.04.01 자바 프로그램 개발 순서, 실행문

19.04.08 어노테이션,Getter / Setter 메소드

Back-End/Java 2019. 4. 8. 17:39
728x90
반응형

- 어노테이션이란? -


컴파일 과정과 실행과정에서 코드를 어떻게 컴파일하고 처리할 것인지를 알려주는 정보


@Override
선언한 메서드가 오버라이드 되었다는 것을 나타냅니다.
만약 상위(부모) 클래스(또는 인터페이스)에서 해당 메서드를 찾을 수 없다면 컴파일 에러를 발생 시킵니다.


@Deprecated
해당 메서드가 더 이상 사용되지 않음을 표시합니다.
만약 사용할 경우 컴파일 경고를 발생 시킵니다.


@SuppressWarnings
선언한 곳의 컴파일 경고를 무시하도록 합니다.


@SafeVarargs
Java7 부터 지원하며, 제너릭 같은 가변인자의 매개변수를 사용할 때의 경고를 무시합니다.


@FunctionalInterface
Java8 부터 지원하며, 함수형 인터페이스를 지정하는 어노테이션입니다.
만약 메서드가 존재하지 않거나, 1개 이상의 메서드(default 메서드 제외)가 존재할 경우 컴파일 오류를 발생 시킵니다.


-출처-

https://elfinlas.github.io/2017/12/14/java-annotation/



-Getter 메소드-
필드값을 가공한 후 외부로 전달하는 메소드



-Setter 메소드-
매개값을 검증해서 유효한 값만 데이터로 저장하는 메소드



-예제 및 출력값-


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
package chap06_Getter_Setter;
 
public class GetterSetter {
    private int speed; // 필드선언
    private boolean stop;  //필드선언
    
    public int getSpeed() 
    {
        return speed; //speed를 리턴
    }
    
    public void setSpeed(int speed)  //speed를 매개변수로 받음 
    {
        if(speed < 0//speed가 0보다 작을 시(음수가 나올시에)에는 0를 리턴하고 아닐시에는 그 속도를 그대로 쓴다.
        {
            this.speed = 0;
            return;
        }
        else 
        {
            this.speed = speed;
        }
    }
    
    public boolean isStop() //boolean은 논리타입 (참,거짓 판별)
    {
        return stop; //stop를 리턴
    }
    
    public void setStop(boolean stop) 
    {
        this.stop = stop;  
        this.speed = 0;   
    }
}
 
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
package chap06_Getter_Setter;
 
public class GetterSetterCar {
 
    public static void main(String[] args) {
        GetterSetter myCar = new GetterSetter();
        
        //잘못된 속도 변경
        myCar.setSpeed(-50);
        
        System.out.println("현재 속도: "+myCar.getSpeed());
        
        
        //올바른 속도 변경
        myCar.setSpeed(60);
        
        //멈춤
        if(!myCar.isStop()) 
        {
            myCar.setStop(true);
        }
        System.out.println("현재 속도: "+myCar.getSpeed());
    }
}
 
cs


728x90
반응형
:

19.04.06 Class(필드, 생성자 오버로딩)

Back-End/Java 2019. 4. 6. 18:42
728x90
반응형

-Field-

필드는 객체의 고유데이터, 상태 정보를 저장하는 곳.

필드는 생성자와 메소드 전체에서 사용되며 객체가 소멸되지 않는 한 객체와 함께 존재한다.

 

-예제 및 출력결과-

 

1
2
3
4
5
6
7
8
9
10
11
package chap4_field;
 
public class Car {
    // 필드 생성 (멤버변수)
    String company = "현대자동차";
    String model = "그랜저";
    String color = "검정";
    int maxSpeed = 350;
    int speed;
    
}
cs

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package chap4_field;
 
public class CarExample {
 
    public static void main(String[] args) {
        
        Car myCar = new Car(); //new 키워드를 사용해서 car객체를 만들고 변수 mycar가 참조하게 한다
        
        //필드값 읽기
        System.out.println("제작회사: "+myCar.company);
        System.out.println("모델명: "+myCar.model);
        System.out.println("색깔: "+myCar.color);
        System.out.println("최고속도: "+myCar.maxSpeed);
        System.out.println("현재속도: "+myCar.speed);
        
        //필드값 변경
        myCar.speed = 60;
        System.out.println("수정된 속도: "+myCar.speed);
    }
}
 
cs

 

 

-출처-

https://programmers.co.kr/learn/courses/5/lessons/140

 

 

 

-생성자-

생성자의 역할은 객체 생성 시 초기화를 담당.

클래스 이름으로 되어 있고 리턴 타입이 없다.

 

 

-생성자 오버로딩-

매개 변수를 달리하는 생성자를 여러개 선언하는 것.

 

-예제 및 출력결과-

 

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
package chap4_field;
 
public class CarOverloading {
    //필드선언
    String company = "현대자동차";
    String model;
    String color;
    int maxSpeed;
 
    //기본 생성자
    CarOverloading()
    {
        
    }
    
    CarOverloading(String model)
    {
        this.model = model; //this를 써서 필드이름과 변수를 구분해 준다. 
    }
    
    CarOverloading(String model, String color)
    {
        this.model = model;
        this.color = color;
    }
 
    CarOverloading(String model, String color, int maxSpeed)
    {
        this.model = model;
        this.color = color;
        this.maxSpeed = maxSpeed;
    }
}
 
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
package chap4_field;
 
public class CarExampleOverloading {
 
    public static void main(String[] args) {
        CarOverloading car1 = new CarOverloading(); //company 필드에 현대자동차라는 값이 있기 때문에 그 값을 참조해서 출력한다.
        System.out.println("car1.company: " +car1.company);
        System.out.println();
        
        CarOverloading car2 = new CarOverloading("자가용");
        System.out.println("car2.company: " +car2.company);
        System.out.println("car2.model: " +car2.model);
        System.out.println();
        
        CarOverloading car3 = new CarOverloading("자가용","빨강");
        System.out.println("car3.company: " +car3.company);
        System.out.println("car3.model: " +car3.model);
        System.out.println("car3.color: " +car3.color);
        System.out.println();
        
        CarOverloading car4 = new CarOverloading("택시","검정",200);
        System.out.println("car4.company: " +car4.company);
        System.out.println("car4.model: " +car4.model);
        System.out.println("car4.color: " +car4.color);
        System.out.println("car4.maxSpeed: " +car4.maxSpeed);
    }
}
 
 
cs

 

 

-출처-

https://programmers.co.kr/learn/courses/5/lessons/171

728x90
반응형

'Back-End > Java' 카테고리의 다른 글

19.04.09 상속, final  (0) 2019.04.09
19.04.08 어노테이션,Getter / Setter 메소드  (0) 2019.04.08
19.04.05 다차원 배열, 향상된 for문  (0) 2019.04.05
19.04.04 random, Scanner  (0) 2019.04.04
19.04.03 예외처리, Integer, eqals()  (0) 2019.04.03
:

19.04.05 다차원 배열, 향상된 for문

Back-End/Java 2019. 4. 5. 17:39
728x90
반응형

- 다차원 배열 -


다차원 배열은 1차원 배열과 달리 수학의 행렬을 생각하고, 배열의 요소로 또다른 배열을 갖는 것을 의미한다.

예를들면 int[2][3]; 배열이 있으면 길이가 2인 배열 안에 길이가 3인 배열이 2개 있는것이다.



-출처-

https://blog.naver.com/myroom9/221172213230




-향상된 for문-


향상된 반복문은 for(타입 변수명 : 배열 또는 컬렉션)

{

반복할문장;

}

으로 사용한다.


이때 변수의 타입은 배열의 타입과 같아야 한다.

향상된 반복문은 배열에 저장된 값을 순서대로 읽어서 변수에 저장하고

배열에 저장된 값을 모두 저장하면 반복문에서 나가진다.

배열에 저장된 요소를 읽어내는 용도로 사용하면 된다.


-예제 및 출력-


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package chap05.array;
 
public class array 
{
public static void main(String[] args) 
    {
        int[] scores = { 9571849387 };
        int sum = 0;
        for (int score : scores) //scores 배열의 원소
        {
            sum = sum + score;
        }
        System.out.println("점수 총합 = "+sum);
        double avg = (double) sum /scores.length;
        System.out.println("점수 평균 = " +avg);
    }
}
 
cs



-출처-

https://blog.naver.com/sjw7324/221482728452



728x90
반응형
:

19.04.04 random, Scanner

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

-random-


(int)(Math.random()*'숫자')+'시작할숫자' = 랜덤으로 숫자 뽑을때 사용
main() 메서드 안에 'Random'을 타이핑하고 'Ctrl'+ 'Space'를 동시에 누르면 창이뜨고,맨위의 'Random - java.util'을 선택합니다.


ex)int num = (int)(Math.random()*6)+1;
(1에서 6까지의 랜덤한 숫자값이 num에 저장됨)


- 예제 및 출력된 값 -

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package chap04.chp4;
 
import java.util.Scanner;
 
public class DoWhileExample 
{
    public static void main(String[] args) 
    {    
        while(true)   //1부터 6까지 랜덤하게 숫자를 출력하고 6이 출력되면 멈추는 반복문
        {
            int num = (int)(Math.random()*6)+1;
            System.out.println(num);
            if(num == 6
            {
                break;
            }
        }
        System.out.println("프로그램 종료");
    }
}
 
cs


-출처-

https://blog.naver.com/battle1316/221427655924

https://blog.naver.com/kimhecan/221497351909



- Scanner -


Scanner scanner = new Scanner(System.in);

//Scanner에 드래그 하고 컨트롤, 쉬프트, O동시에 눌러서 import java.util.Scanner; 추가
  
String inputString=scanner.nextLine();
//엔터키를 누르기 전까지 사용자가 입력한 값을 입력을수 있다(c언어의 scanf같이 키보드에서 입력받을때 사용)



- 예제 및 출력된 값 -


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package chap04.chp4;
 
import java.util.Scanner;
public class formun 
{
    public static void main(String[] args) 
    {    
        while(true)
        {
            System.out.println("____________________________");
            System.out.println("1.예금 | 2.출금 | 3.잔고 | 4.종료");
            System.out.println("____________________________");
            
            Scanner scanner = new Scanner(System.in);
            String inputString = scanner.nextLine();
            
            System.out.println("선택> "+inputString);
            break;
        }
    }
cs




-출처-

https://manniz.tistory.com/54









728x90
반응형
:

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
반응형
: