728x90
반응형
728x90
반응형
메서드간의 호출 & 참조 static 메서드간의 호출은 가능하지만 static 메서드는 인스턴스 변수 호출 불가능 따라서 static 메서드는 인스턴스 메서드도 호출이 불가능하다. 이유: static 메서드는 그냥 사용이 가능한 메서드지만 인스턴스 변수는 객체를 생성해야 사용이 가능하고 인스턴스 메서드를 호출 시 객체가 존재하지 않을 수 있어 사용이 불가능 static 메서드의 사용은 인스턴스 변수&메서드가 없거나 공유해야할 메모리 정보가 있을 때 사용 오버로딩 (overloading) 정의: 매개변수는 다르지만 같은 기능을 수행; 오버로딩 성립 기준 반환 기준은 상관없음 메서드 이름이 같을 것 매개변수 개수나 타입이 다를 것 반환타입은 int, long이지만 상관이 없다. 매개변수의 타입이 각각 다르고..
static(클래스) & 인스턴스 메서드 인스턴스는 참조변수를 써야하고 클래스 메서드는 객체 생성없이 클래스 변수 이름만으로 호출가능 클래스 메서드 예시: Math.random, Math.round public class Math{ int a; //인스턴스 변수: 모든 클래스, 즉 Math 클래스 전체에 적용되는 인스턴스 변수 int b; int add() { return a + b; } static int add(int a, int b) { //클래스 변수: 하단의 클래스까지만 적용 return a + b; // 지역변수 //지역변수를 사용하고 iv(instance variable = 인스턴스 변수)를 사용하지 않을 때 //static을 붙여 class 변수로 만듬 } } class MathMain{ ..
return문 반환값 void일 경우에 return을 써서 조건이 맞지 않으면 호출문으로 되돌아감 void가 아닐경우엔 return을 반드시 써서 반환값을 지정해야함 따라서 아래의 코드같은 경우에는 number 값이 9를 초과했으므로 출력문이 실행되지 않음 public class CardClss{ public static void main(String[] args) { //선언부 test tt = new test(); tt.gugu(10); tt.gugu(4); } } class test{ //반환타입이 void일 경우 return문 사용하여 조건이 맞지 않을경우 호출한 곳으로 되돌리기 가능 void gugu(int number) { if(!(0
메서드 코드들을 블록안에 묶어놓은 것 중복되는 코드들을 묶어서 이름을 선언해 코드를 간결화 시킨다. - 코드의 재사용 가능 + 이해하기 쉬워진다 class Card{ public static void main(String[] args) { List list = new List(); int[] n = {1,2,3,4,5}; List.numArr(n); int[] n2 = {6,7,8,9}; List.numArr(n2); } } class List { static void numArr(int[] number) { for(int i = 0; i y ? x : y; } } 출력문 true 5
클래스의 정의 1. 정의 변수 > 배열 > 구조체 > 클래스 순으로 나열됨 변수: 하나의 데이터를 저장가능한 공간 int 1 배열: 여러개의 같은 종류의 데이터를 하나로 저장가능한 공간 int 1 int 2 int 3 구조체: 서로 관련된 (타입 상관없이) 여러 데이터를 저장 가능한 공간 int 1 String hello float 1.2 클래스: 데이터와 함수의 결합, 즉 구조체 + 함수 int 1 String hello float 1.2 + 함수 1. 정의2 특징: 원하는 타입을 직접 만들 수 있다. 아래와 같이 각각의 다른 타입의 변수를 선언하고 메서드를 만든다 그 후에 선언한 class의 변수를 new를 통해서 선언함으로써 코드를 간결화 시킬 수 있다. (타입 선언 필요없음) 각각의 변수를 cla..
테스트 예시 만들기 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..