Java 23

자바(Java) try-catch-finally 구문 학습하기

try-catch-finally 구문이란?  try-catch-finally는 자바에서 예외 처리를 위해 사용되는 구문이다예외 처리는 프로그램 실행 중에 발생할 수 있는 오류를 관리하고, 프로그램이 예외 상황에서도 적절히 동작할 수 있도록 해준다.  import java.util.ArrayList;public class TryMain { public static void main(String[] args) { // TODO Auto-generated method stub try { //에러가 없을 때 실행시킬 부분 ArrayList nameList = new ArrayList(); nameList.add("홍길동"); } catch(Exception e) { //파이썬 excep..

Java 2024.06.04

Java에서 NullPointerException 발생 시 해결 방법

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.util.ArrayList.add(Object)" because "mc.memberList" is nullat main.AddressMain.main(AddressMain.java:20)  실행 시켰을 때, 오류 뜨는 이유는?  => mc가 힙메모리를 Pointer 할 때 Pointer 할 값이 null이기(비어있기) 때문이다.=> memberlist에 저장된 힙 메모리가 없기 때문이다.=> "홍길동", "010-2222-3333"이 stack 영역에서 member의 생성자로는 생성이 되었지만,     힙 메모리에 저장되는 memberlist 영역에는 값이 제대로 ..

Java 2024.06.04

자바(Java)의 "HashMap" 딕셔너리와 비슷한 데이터 스트럭쳐

HashMap 해시 맵은 키와 값을 쌍으로 저장하는 자료 구조이다. hash map은 파이썬의 딕셔너리와 비슷한 데이터 스트럭쳐이다.  이름, 전화번호 쌍을 저장한다.HashMap phoneMap = new HashMap();  데이터 저장phoneMap.put("model", "iphone 12");phoneMap.put("year", "2021");phoneMap.put("color", "red");  데이터 억세스phoneMap.get("model")  모든 데이터 불러오는 방법 1Object[] values = phoneMap.values().toArray();  모든 데이터 불러오는 방법 2for( Object data : phoneMap.values().toArray() ) { S..

Java 2024.06.04

자바(Java)의 ArrayList 라이브러리 사용하기

ArrayList 라이브러리란? 기존의 Array(배열)은 정해진 데이터의 갯수 이상으로는 데이터 추가가 불가하다갯수 제한 없이 데이터를 마음대로 추가, 수정, 삭제하기 위하여 만든 라이브러리 이다.  ArrayList 라이브러리 사용법(규칙)  담고싶은 데이터의 타입을 안에 적어줘야 한다. ArrayList nameList = new ArrayList();    (1) 패키지 하나에 작성 - 사람의 이름을 저장할 수 있는 데이터 스트럭쳐 만들기   import java.util.ArrayList; //ArrayList 라이브러리 임포트public class ArrayListMain { public static void main(String[] args) { // 데이터 추가 nameList..

Java 2024.06.03

자바의 문자열(String) 데이터 가공하기

자바에서 문자열 생성 방법 2가지String str1 = "Hello";String str2 = new String("Hello"); 문자열 붙이는 방법String result = str1 + " " + str2;System.out.println(result);**** 문자열을 숫자로 바꾸는 방법 ****String str3 = "317";int a = Integer.valueOf(str3).intValue(); //방법 1System.out.println(a + 10);a = Integer.parseInt(str3); //방법 2System.out.println(a + 10); String str4 = "3.17";double b = Double.valueOf(str4).doubleValue(); //..

Java 2024.06.03

자바 객체 지향 프로그래밍에서 Interface(인터페이스)를 활용하기

Interface의 사용 목적과 정의 - 인터페이스는 여러 개의 클래스가 동일한 메서드를 구현하도록 강제할 때,   즉 일관된 방법으로 서로 다른 클래스들을 다룰 때 주로 사용된다. - 인터페이스는 클래스가 구현해야 하는 메서드의 목록을 정의하는 데 사용된다.  - 멤버변수가 상수와 함수(메소드)로만 이루어져있어야 interface를 사용할 수 있다. - 즉, 변수는 선언될 때 초기화되어야 하며, 이후 변경될 수 없다   - 상수(constant)란?  : 한번 데이터를 저장하면, 그 다음부터는 사용만 할 수 있다. : 즉 한번 저장하면 다른곳에서 데이터값을 바꾸면 안된다. : 상수는 일반적으로 대문자로 작성된다.    Interface 사용하기  아래와 같이 여러개의 클래스를 상속받으려고 하면 오류가 ..

Java 2024.06.03

자바의 추상화(Abstract)의 용도와 방법

다른사람과 협업할 시에, 한 사람이 큰 틀을 만들어놓고 내용은 다른사람이 적도록 만드는데, "틀"만 만들 때 추상화를 사용하는 것이다.    틀을 만들 때, 내용은 적지 않고 abstract를 붙이고 클래스 앞에도 abstract를 붙여 놓으면   다음 사람(내용을 만드는 사람)이 추상클래스가 들어있는 클래스를 상속하는 순간,  Parent에 빨간 밑줄이 뜨는데, print()라는 함수를 만들어야 한다고 뜬다. 즉 print에 대한 내용은 Parent 클래스를 만드는 사람이 작성하여야 하는 것이다.   print() 함수 뿐만 아니라, abstract가 붙은 함수는 (ex hello) 아래처럼 모두 내용을 작성하여야 한다.    main을 작성하여 실행하면,    결과가 다음과 같이 출력된다.

Java 2024.06.03

자바 메소드 오버라이딩(Method Overriding) 하는 방법

메소드 오버라이딩(Method Overriding)  부모클래스의 변수는 name, age, money이고, 자녀클래스의 변수는 부모에게 상속받은 변수와 자녀클래스의 변수인 hobby가 있다.   그런데, 생성자 자체를 만들지 않고, 부모의 생성자를 이어받아 쓰고싶다. 다시 말해서 c.printChild();를 쓰지 않고(새로운 함수를 만들지 않고), 부모의 print 함수를 쓰고싶다. 이처럼 새로운 함수를 만들지 않아도 부모의 함수를 응용해서 쓸 수 있는 것을 메소드 오버라이딩이라고 한다.      기존에 있던 printChild 함수 부분을 지우고, 부모의 child함수를 오버라이딩 할 것이다.    오버라이딩 할 때에는 @Override를 붙이는 이유는, 다른 사람과 협업할 때 오버라이딩했다는 것을..

Java 2024.06.03