본문 바로가기

✨ Java57

자바(JAVA) - 달력 만들기 보호되어 있는 글 입니다. 2023. 7. 7.
자바(JAVA) - 가변인자 (variable arguments) 란 무엇인가? 가변인자란? ... 이 삽입된 메소드의 매개변수 선언을 '가변 인자 선언' 이라고 한다. HTML 삽입 미리보기할 수 없는 소스 위 코드를 보면, Te 클래스 안에 vararg 메소드가 만들어져있고, 매개변수로 ... x 와 같은 방식이 있다. 이를 가변인자라고 부른다. 원래라면 main 메소드에 vararg에 변수 1,2,3,4,5,6을 던져준 것처럼 vararg에는 int x, int y, int z, int k, int j, int o.... 등 이렇게 매개변수를 6개 정의해줘야한다. 이처럼 가변인자를 선언해서 사용하게 되면 전달되는 인자의 수에 제한을 두지 않고 동적으로 사용가능하다. 가변인자를 왜써? 가변인자(...)은 호출 코드의 가독성과 사용편의성을 높일 수 있다. 단, - 가변인자를 사용할.. 2023. 7. 7.
자바(JAVA) - static(클래스)변수와 instance변수, local(지역)변수 HTML 삽입 미리보기할 수 없는 소스 클래스에 선언된 변수는 모두 멤버 변수라고 부른다. 즉, int x와 static int y는 멤버변수라고 할 수 있다. 멤버 변수 중 static이 붙은 것은 클래스 변수, 붙지 않은 변수는 인스턴스 변수이다. 📌 static(클래스)변수 인스턴스 변수 앞에 static만 붙이면 된다. 인스턴스마다 독립적인 저장공간을 갖는 인스턴스 변수와 달리, 클래스 변수는 모든 인스턴스가 공통된 변수(공간)을 공유한다. 한 클래스의 모든 인스턴스들이 공통적인 값을 유지해야 하는 속성일 경우, static변수로 선언한다. new를 하지않아도 자동으로 생성된다. 즉, 클래스에 고정된 멤버로, 객체 없이도 사용할 수 있다. ObjectEx4 클래스 HTML 삽입 미리보기할 수 없는.. 2023. 7. 6.
자바(JAVA) - 메소드 (Method) - 3 HTML 삽입 미리보기할 수 없는 소스 이렇게 VariableEx2 클래스를 생성하고, main메소드에서 해당 클래스 객체를 생성후 메소드를 호출하여 print로 찍어보았다. byteValue 메소드는 두개지만, 하나는 오버로딩된 메소드로 매개변수가 같지 않기 때문에, 매개변수로 x, y가 있는 메소드가 호출된다. * 오버로딩 : 같은 이름의 생성자 또는 메소드를 여러 개 선언하는 것을 말한다. v.getAvg(346)을 출력해보면 86.5가 나온다. return 값으로 total/4 를 하게되면 86.0이 되는데, 4.F는 형변환을 통해 int의 크기가 float보다 작으므로 float의 형태로 값을 조회할 수 있다. 2023. 7. 6.
자바(JAVA) - 자료형 변환 (byte, int, long, char, boolean) 연산 HTML 삽입 미리보기할 수 없는 소스 byte (1byte) < short (2byte) < int (4byte) < long (8byte) < float (4byte) < double (8byte) 1. byte 형변환 byte의 크기(Byte.MAX_VALUE)는 127까지이다. 따라서 byteValue1과 byteValue2를 더했을때 128 이상이 되면 쓰레기 값으로 0이 나오게 된다. 연산을 할때도 ( ) 안에 넣어서 연산을 하게 되면 자료형이 맞지 않으므로, 형변환을 해서 연산해주어야한다. 2. 자료형 Int와 Long int는 4바이트, long은 8바이트 이므로, intValue2에서 연산을 할 때 1l 을 써준다면, 연산은 크기가 큰 long의 형태로 하기 때문에 int의 크기를 벗어나.. 2023. 7. 6.
자바(JAVA) - 제네릭(Generic) 제네릭이란? - 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법을 의미한다. 그렇다면 왜 제네릭을 사용하는 것일까? HTML 삽입 미리보기할 수 없는 소스 위 코드를 줄여 하나의 클래스로 만들어보았다. 하지만, 이렇게 하면 BookTest의 Object 타입 때문에 t1에 들어가는 타입은 Object이다. 그러나, EnglishBook과 MathBook에는 Integer 타입으로 가격을 넣어주어야한다. 어떻게 할 수 있을까? 이런식으로 클래스를 줄이고, 제네릭을 사용하여 T 자리에 클래스를 넣어 코드를 줄여볼 수 있었다. 제네릭 메소드 접근제한자와 리턴값 사이에 꺾새를 주고, 매개변수의 타입을 U로 설정하면 제네릭 메소드가 완성된다. 2023. 7. 6.
자바(JAVA) - 자바의 특징 JAVA(객체지향)는 class 기반으로 이루어진다. class 안에는 속성, 기능(메소드)이 있다. 자바의 특징 🚩객체지향(OOP, Object Oriented Programming language) 상속, 캡슐화(은닉), 다형성, 추상화가 적용된 객체지향 언어. 위 4가지 특징을 활용해 코드의 재사용성을 증가하고, 유지보수를 용이하게 만들 수 있다. OOP : 객체들을 하나씩 조립해서 완성된 프로그램을 만드는 기법 1) 상속 (Inheritance) : 부모 클래스의 변수와 메서드를 자식 클래스가 전부 물려받는 것. 2) 캡슐화 (Encapsulation, Information Hiding) : 객체의 변수 및 메서드를 외부 객체가 함부로 건드리지 못하게 감쌈. 클래스의 getter / setter .. 2023. 7. 6.
자바(JAVA) - 상수(final)의 의미 final 이란? - 무언가를 제한한다는 의미를 가지는 것으로, 변수(variable), 메서드(method), 클래스(class)에 사용가능하다. 이 final 키워드는 어떤 곳에 사용되냐에 따라 다른 의미를 가진다. 메소드를 선언할 때 final 키워드를 붙이면 이 메소드는 최종적인 메소드이므로 오버라이딩할 수 없다. 즉, 부모 클래스를 상속해서 자식 클래스를 선언할 때, 부모 클래스에 선언된 final 메소드는 자식 클래스에서 재정의 불가. 변수(variable) - 변수에 final을 붙이면 이 변수는 수정할 수 없다는 의미이다. 따라서 초기화 값을 필수적으로 기입해야한다. 만약 객체 안의 변수라면 생성자, static 블럭을 통해 초기화까지는 가능하다. 단, 수정할 수 없다는 의미의 범위는 변수.. 2023. 7. 5.
자바(JAVA) - Static의 의미 정적(Static)이란 - 고정된 의미를 갖고 있다. Static이란 키워드를 사용해 Static 변수, Static 메소드를 만들 수 있다. 이를 정적 필드와 정적 메소드라고 하며 이 둘을 합쳐 정적 멤버(클래스 멤버)라고 부른다. 정적 필드와 정적 메소드는 객체에 소속된 멤버가 아니라 클래스에 고정된 멤버이다. 클래스 로더가 클래스를 로딩해서 메소드 메모리 영역에 적재할 때 클래스별로 관리된다. 그렇기 때문에 클래스의 로딩이 끝나는 즉시 바로 사용가능하다. 즉, Java에서 Static 키워드를 사용한다는 것은 메모리에 한번 할당되어 프로그램이 종료될 때 해제되는 것을 의미한다. 일반적으로 우리가 만든 Class는 Static 영역에 생성되고, new 연산을 통해 생성한 객체는 Heap영역에 생성된다.. 2023. 7. 5.
[json] Map데이터 받아오는 8가지 방법 json_test.html TestController json_test.js ajax에 JSON.stringify(stu)는 문자로 보내는데, json 형태로 바꿔서 던져주라는 것이다. html로 넘어와서 데이터 받기를 누르면 오른쪽 컨트롤러로 넘어가면서 콘솔창으로 Map data들이 뜨게된다. Controller Map 함수를 사용하게 되면 이와 같이 data에 있는 값들이 콘솔창에 json 형태로 나오게 된다. ajax 위에서 만든 stu 함수를 컨트롤러로 json 형태로 보내게 된다. 추가적으로 name으로 java, age로 20 데이터도 함께 보내게 된다. ajax에 있는 데이터 값이 json 형태로 하나 나오게 되고, 나머지는 임의로 넣어 줬던 name과 age가 출력된다. 맨위는 데이터를 통.. 2023. 4. 10.
자바(JAVA) - 컬렉션프레임워크 Map - 2 컬렉션 프레임 워크에는 대표적으로 List와 Map이있다. List -> 순번이 존재하고, 중복 데이터 등록 가능하다. https://bright-landscape.tistory.com/40 자바(JAVA) - 컬렉션프레임워크 ArrayList 컬렉션 프레임워크의 종류 - 데이터를 읽고 쓰는 방식에 따라 크게 4가지를 제공한다. - Set, List, Queue, Map 인터페이스 List 인터페이스를 구현하여 제공하는 ArrayList를 소개하려고한다. List 인터페 bright-landscape.tistory.com Map -> key와 value라는 하나의 쌍으로 데이터를 관리한다. https://bright-landscape.tistory.com/43 자바(JAVA) - 컬렉션프레임워크 Map .. 2023. 3. 31.
자바(JAVA) - 예외 처리(Exception) try ~ catch에 대해 알아보자 try catch 구문을 살펴보자. HTML 삽입 미리보기할 수 없는 소스 위 코드를 Scanner로 입력받아 실행시키면, 이처럼 잘 작동하는 것을 볼 수 있지만, b에 0을 넣어보면 어떻게 될까? 이처럼 에러가 난다. 사실 이건 에러가 뜬게 아니라 첫줄 코드를 자세히 살펴보면 Exception 이라는 예외처리라는 의미이다. 분자를 분모 0으로 나눌 수 없기 때문이다. 첫번째 줄 오른쪽을 보면 / by zero를 볼 수 있다. 왜 예외가 발생했는지 대략적으로 볼 수 있다. java.lang.ArithmeticException이 중간에 떠있다. int로 받았는데 문자열을 넣는다면, ArithmeticException 자리에 InputMismatchException 이온다. 그렇다면 이처럼 예외처리 코드가 .. 2023. 2. 18.