본문 바로가기

ALL257

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.
JAVA OOP 의 개념 (클래스,객체 = 인스턴스) 클래스 = 틀 객체 = 메모리에 실제 존재하는 값 덩어리 Product 클래스 안에 멤버변수 와 메소드를 생성. OOP를 사용하지 않고 Console과 같이 출력하려면 System.out.println("어쩌고...") 와 같이 길게 작성해야 되서 번거롭다 때문에 맨위의 그림처럼 만들면 p1.print(); 와 같이 간결하게 사용가능하다. 이와같이 가능한이유는 애초에 메모리 안에는 영역이 나누어져 있고 new 라고 선언함과 동시에 heap 영역 메소드를 참조할수 있게 되었기 때문. 그리고 이와같이 메모리에 함수가 존재하는 상태를 인스턴스 라고 한다. 2023. 1. 18.
JAVA Switch case , for while, Array , func public class Switch { public static void main(String[] args) { // TODO Auto-generated method stub int a = 3; switch(a) { case 1: System.out.println("hello"); break; case 2: System.out.println("Bye"); break; case 3: System.out.println("Good~"); break; case 4: System.out.println("Nice~"); break; default : System.out.println("the end"); break; } String month = "4월"; switch(month){ case "1월": case ".. 2023. 1. 18.
JAVA 기본 문법 eclipse콘솔에 한글 나오게 하기 public class Hello { // 1. cpu는 main함수부터 실행된다. public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("hello~~~"); System.out.println("안녕하세요~~~"); // 2. 변수를 처음 사용할때는, 변수명 왼쪽에 데이터 타입을 붙여준다.(한번만) // 떡볶이 1인분에 2천원이다. String food = "떡볶이"; int price = 2000; float rate1 = 15.3f; double rate = 15.4; food = "고등어"; int total = price * 3; System.out.println(food); Sy.. 2023. 1. 17.
JAVA를 VSC에서 실행하는방법 설치와 환경변수는 되있다는 가정. 확장팩을 설치하면 자동으로 몇개 더설치됨 컨트롤 쉬프트 p java: create java project No build tools 선택 후 프로젝트 경로설정 컨트롤 f5를 눌러서 hello 메세지 보기 2023. 1. 17.