728x90
반응형
728x90
반응형
static을 붙이는 메서드 메서드에 static이 붙는 경우는 어떤 불변의 기능을 언제든지 실행시켜야 할 때 static이 붙는다. 예를 들어 원의 둘레를 구하는 메서드를 구현한다고 하면, 이 경우는 static이 붙여져서 선언된다. 이유: 어느 전 국가에서나 통용되는 범용적인 공식이기 때문에 static을 붙여서 선언한다. 위처럼 메서드의 기능을 잘 생각해서 static을 붙일지 말지 결정하여 메서드를 선언한다. 아래에는 static이 붙은 메서드에 일반 멤버변수가 들어간 경우이다. 이 때 static 메서드과 멤버변수는 이미 메모리가 할당되어 객체 호출없이 static 멤버변수를 사용 가능하지만 일반 멤버변수는 메모리 할당이 되어있지 않기 때문에 사용이 불가능하다. 따라서 메서드안에 객체를 호출해줘..
생성자 안의 객체 생성 시 컴파일 오류 강사님이 Calculator라는 클래스를 정의할 때 클래스 안의 다른 2개의 클래스들을 다른 클래스에서도 선언하기 위해 그 클래스들의 객체를 필드 값에 정의한 내용이다. 이때 나의 질문 내용은 필드값에 객체를 한번에 선언하여 Calculator 라는 클래스를 통해 다른 클래스의 메서드들을 접근하는 것과 생성자에 객체의 주소값을 별도로 메모리에 할당하는 것의 차이점을 여쭤보는것이었다. 강사님은 두개에 별다른 차이점은 없고 컴파일 시 오류가 나지 않지만, 자바 안의 생성자의 목적(값을 초기화) 에 맞게 별개로 객체를 정의하여 생성자에 별도로 정의하는 것이 좋다고 하셨다. 아래는 질문을 드릴 때 사용되었던 코드. Calculator를 실행시키기 위해 사용되었던 Main ..
접근제어자 private private을 넣으면 현재 클래스에서만 접근 가능하도록 데이터의 접근 범위를 제한 따라서 다른 클래스에서 Mart를 선언하여 출력한다고 해도 오류가 발생함 public class Mart { //field private int benefit; // 이윤 private int applenumber; //사과 잔고 private int appleprice; //사과 단가 아무것도 지정안할 경우에는 default값으로 지정되는데 default값은 같은 package내에서 접근이 가능함 public일 경우에는 어디서나 이클립스 안이라면 선언이 가능하다 public class Mart { //field int benefit; // 이윤 public int applenumber; //사과..
객체지향 정의: 객체지향이란 각각의 기능에 맞게 클래스들을 생성하여 프로그램의 기능을 구현하기 쉽게 만들고 나중에 유지보수나 재사용을 쉽게 가능하게 만들어주는 것. 각각의 클래스들을 만들때 필드(멤버변수 IV), 생성자, 메서드(행동, 기능)들을 만들어준다. 사과 판매를 예시로 하여 설명하였는데 필드, 생성자, 메서드를 아래와 같이 선언해준다. 판매자의 입장에서 필요한 멤버변수는 (1)개당 이윤과 (2)현재 사과의 잔고 (3) 사과 단가이기 때문에 필드에 3개의 변수를 선언했다. 필드는 그 클래스의 기능에 필요한 멤버변수를 선언한다 public class Mart { //field int benefit; // 이윤 int applenumber; //사과 잔고 int appleprice; //사과 단가 생..
테스트 예시 만들기 1개의 Test의 class 생성 Test값을 받는 리스트 생성 리스트를 출력하는 Main class 생성 1. 테스트의 class 는 전 글에서 복붙하여 사용 - 이유: 귀찮음 import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.Date; public class Test { //테스트 1개의 정보를 입력 private static int count; private int index; private String TestName; private boolean isResult; private int TestPrice; private Date date; // 생성자 입력 public Test(..
주의할 점: 언어의 늪에 빠지지말고 일단 학습하여 흐름을 눈에 익힌 후에 개념을 이해하자 클래스의 정의 데이터와 그 데이터를 처리하기 위한 메소드를 가짐 VO or DTO라고 불림: Value Object & Data Access Object bean: 자바를 구성하는 최소단위로 처리 데이터를 메모리에 기억하는 멤버변수와 getter & setter로 구성되 있음 클래스의 순서는 대략적으로 이렇다 멤버변수 선언 > 생성자 입력 > getters&setters (데이터 계산 메소드) 입력 > toString 입력 (데이터 출력문) 아래의 예시를 보면서 이해할 것 1. 멤버 변수 선언 - 주어진 데이터는 아무나 접근하여 바꾸면 안되기때문에 private 접근제한자로 접근을 제한한다. 아래는 데이터 초기화를 ..
ArrayList 한번 길이를 선언하면 변경이 불가능한 Array와는 달리 ArrayList는 주어진 데이터의 길이만큼 변경 가능 기본형식: ArrayList 변수이름 = new ArrayList(); 는 제네릭 이라고 불리고 안에는 항상 클래스 변수가 들어가야 함. 따라서 기본자료형은 String Integer 등으로 적음 ArrayList는 .add 함수로 미리 값을 받아온 후에 .get함수로 추출해내야 한다. import java.util.ArrayList; public class ArrayListTest { public static void main(String[] args) { // 배열(Array)은 한번 선언하면 프로그램에서 크기 변경 불가 int[] data = new int [10]; f..
주민등록번호 13자리를 입력받아 만 나이 출력 Date 함수로 현재 년도를 구하고 substring함수와 Integer.parseInt 함수로 태어난 년도를 구함 삼항연산자를 통해 20년생과 19년생을 구별하여 1900 or 2000을 더하고 마지막으로 현재 년도에서 태어난 년도를 빼서 만 나이 추출 import java.util.Calendar; import java.util.Date; import java.util.Scanner; public class IDTestYear { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("주민번호 13자리를 '-'없이 입력하세요: ..