본문 바로가기

Java17

Java email 체크 정규식 /** * Comment : 정상적인 이메일 인지 검증. */ public static boolean isValidEmail(String email) { boolean err = false; String regex = "^[_a-z0-9-]+(.[_a-z0-9-]+)*@(?:\\w+\\.)+\\w+$"; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(email); if(m.matches()) { err = true; } return err; } 2023. 1. 31.
JAVA ArrayList, HashMap, for each, contains, isEmpty() import java.util.ArrayList; public class ArrayListMain { public static void main(String[] args) { // 이름을 저장할 array 를 만든다. // array 는 생성할때, 갯수를 꼭 정해놓고 생성해야 한다. String[] nameArray = new String[10]; int[] numArray = new int[7]; // 위의 array(배열)는, 정해진 갯수 이상으로는 // 데이터 추가가 불가!! // 따라서, 갯수 제한없이 데이터를 마음대로 // 추가할수도 있고 삭제할수도 있는것이 ArrayList 다! // 담고싶은 데이터를 안에 적어줘야 한다. ArrayList nameList = new ArrayList(.. 2023. 1. 25.
JAVA 정수 및 실수를, 클래스로 생성하는 방법 // 문자열을 숫자로 변환, 숫자를 문자열로 변환하는 방법 // 문자열을 처리하는, 함수들 public class StringMain { public static void main(String[] args) { // TODO Auto-generated method stub // 문자열 생성 2가지 방법 String str1 = "Hello"; String str2 = new String("java"); // 정수, 실수 등을 클래스로 생성하는 방법 int num1 = 5; Integer num2 = 5 ; System.out.println(num1); System.out.println(num2); System.out.println(num1+num2); Float num3 = 3.0f; float num4 = 4f; double num5 = 3.11; Double num6 = 5.3; // 문자.. 2023. 1. 25.
JAVA interface, static final(상수), implements 인터페이스(interface)란? 자식 클래스가 여러 부모 클래스를 상속받을 수 있다면, 다양한 동작을 수행할 수 있다는 장점을 가지게 될 것입니다. 하지만 클래스를 이용하여 다중 상속을 할 경우 메소드 출처의 모호성 등 여러 가지 문제가 발생할 수 있어 자바에서는 클래스를 통한 다중 상속은 지원하지 않습니다. 하지만 다중 상속의 이점을 버릴 수는 없기에 자바에서는 인터페이스라는 것을 통해 다중 상속을 지원하고 있습니다. 인터페이스(interface)란 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스를 의미합니다. 자바에서 추상 클래스는 추상 메소드뿐만 아니라 생성자, 필드, 일반 메소드도 포함할 수 있습니다. 하지만 인터페이스(.. 2023. 1. 20.
JAVA abstract(추상적인) abstract 정의 : 구체적이지 않은 함수 / 메소드의 이름만 생성하고 내용은 없다는 것. (대부분의 프레임워크에 사용되는 기법이라고 함) 특징: 1. abstract 메소드를 정의하면 클래스 이름도 반드시 abstract 을 정의해야함. 2. abstract 클래스는 반드시 abstract 메소드만 있는것은 아니고 일반 메소드와 공존할수있다. 3. abstract 메소드를 상속받는 클래스는 반드시 오버라이딩으로 abstract메소드를 사용해야만 함. 사용 예시: 2023. 1. 20.
JAVA 수평 상속, 수직 상속 수평상속 : 하나의 부모클래스를 수평적으로 받는자식클래스들 수직상속 : 할아버지 클래스를 부모의 클래스가 받고, 부모의 클래스를 자식클래스가 받아서 결국 자식클래스는 할아버지 클래스도 포함하는 개념 상속 Tip. 툴을 잘활용하자 빨간줄 나온것 누르면 자동으로 다 생성해줌 (생산성향상) 2023. 1. 20.
JAVA Method Overriding, super 키워드 위그림과 같은 클래스를 만들것이다 보아하니 겹치는부분(중복)이 많다. 그런것들은 상속의 개념으로 부모로 만들고 물려주면 된다. 때문에 비슷한것들을 묶을 부모클래스 person을 만들고. 물려줄 자식클래스들을 만든다. Person의 코드를 보자 package model; public class Person { protected int num; protected String name; protected String dept; protected String address; } 우선 기본적인 공통사항을 작성하고. 교수 클래스를 만들려고 보니. 공통사항 외에 과목이 보인다. 때문에 Professor(상속받을 클래스)로 이동해서 다음과 같이 과목들을 받을 subjects 리스트 멤버변수를 생성했다. package .. 2023. 1. 19.
JAVA 상속 상속은 멤버변수 뿐만아니라 메소드 까지도 받는다. 자세한 내용은 아래 코드를 참조 cpu의 실행 순서를 보자 상속을 받은 자식 클래스를 호출할때 부모의 클래스를 먼저 실행한 후에 자식클래스가 실행된다는것. 상속의 상속의 상속도 된다. 2023. 1. 19.
JAVA getter setter 프라이빗 멤버변수에 해당 데이터를 할당 프라이빗 멤버변수에 값을 변경하거나 가져오려면 어떻게 해야할까? 결론은 : 이렇게 만들고 이렇게 호출하면 된다. 그런데 문제는 귀찮다. 때문에 툴에서는 해당 기능을 제공한다. getter / setter 생성할곳에 우클릭 하면 다음과 같이 나온다. 멤버변수만 확인되고 Generate 하면 자동으로 getter setter 를 만들어준다. 번외로 안드로이드 스튜디오도 해당기능이 있다. 2023. 1. 19.
JAVA 메소드가 호출->실행 될때 메모리의 상태 / 접근제어자 / 클래스의 멤버변수 데이터를 셋팅하는 방법3가지 / 멤버변수와 로컬변수의 차이점 src 폴더의 구조를 보자 패키지(폴더같은것)가 2개 data, main 패키지별로 파일이 1개씩 있다. Member, AccessMain data 패키지 안의 Member 클래스를 main 패키지 안에 AccessMain 에서 호출했을때 public을 사용하지 않았다면 패키지가 다르므로 호출할수가없다. 이런게 접근제어자 라고하는것인데 접근제어자를 아무것도 설정하지않았다면 디폴트 접근제어자라고 하고 이는 같은 패키지 내에서는 정상작동하지만 패키지가 다르면 작동하지않는다. 멤버변수는 간단히 얘기하면 클래스 내에 속하는 변수다. 클래스에서 정의한 메소드(함수)안에 파라미터나 변수는 로컬변수라고 하고 이는 실행될때 스택영역에 잠시 생겼다가 메소드 전체가 실행되면 다시 사라진다. 자세한 내용은 아래 Member.. 2023. 1. 19.
JAVA 생성자란? 생성자 사용법 / 생성자로 메소드 오버로딩하기 요약: public class Member {} 이것은 자바의 기본 클래스 구조이다. Member m1 = new Member(); 이와같이 객체를 생성하는것이 기본인데 어떻게 이같은것이 동작하는가 ? 사실 클래스 안에는 public class Member { Member(){} // 이게 숨어있다. (디폴트 생성자) } 생성자는 오버로딩도 된다. 단, 디폴트 생성자도 눈에 보이게 선언해야지만 할수있다. 그럼 왜 오버로딩을 할까? 코드를 편하게 한줄로 쓰기위함. 자세한 내용은 아래 그림을 참조 2023. 1. 19.
JAVA static 변수, overloading 클래스 함수를 만들때 고려해야될것은 당연하게도 cpu의 실행순서다 총합을 구하는 함수와 평균을 구하는 함수가 있다 평균을구하고 총합을 구하면 데이터가 이상해질수도 있기 때문에 하나로 합친다. void 와 return 의 메모리 상태에 대해선 추후 알아볼예정 public class StudentTest { String name; int kor; int eng; int math; int total; double AVER; int sum() { return kor + eng + math; } float Avg() { return sum() / 3.0f; } // 함수를 생성할때 만약. // cpu실행특성 때문에 문제발생의 소지가 있다면 하나로 만든다 void calculate() { total = kor + .. 2023. 1. 18.