본문 바로가기

PL(ProgrammingLanguage)

(155)
String 클래스의 Method 문자열 길이 구하기 str.length()는 str이 참조하는 문자열의 길이를 구해서 int 타입으로 리턴해주는 메소드 이다. System.out.println(str.length()); //str 문자열 붙히기 (concat) str.concat("world") 메소드는 str 이 참조하는 문자열 hello 에다가 메소드의 인자로 들어온 문자열 world 를 붙혀서 String 타입으로 리턴하는 메소드다. String Class는 불변 클래스로, 메소드가 수행되면, 새로운 문자열을 만든다. 그러므로, 원래 클래스는 변하지 않는다. String str = new String("hello"); System.out.println(str.concat(" world")); //출력결과는 hello world S..
생성자(constructor) 생성자 new 연산자로 클래스로부터 객체를 생성할 때 호출되어 객체의 초기화를 담당 여기서 잠깐! 객체 초기화란 필드를 초기화하거나 메소드를 호출해서 객체를 사용할 준비를 하는 것. ' 생성자를 실행하지 않고는 클래스로부터 만들 수 없다' 기본 생성자 public class() {} 모든 클래스는 생성자가 반드시 존재. (하나 이상 가질 수 있음) ==> 클래스가 public class로 선언되면 기본 생성자에도 public이 붙지만, 클래스가 public 없이 class로만 선언되었다면 기본 생성자에도 public이 붙지 않는다. new 연산자 Car a = new Car(); 클래스에 명시적으로 선언한 생성자가 1개라도 있을 경우, 컴파일러는 기본 생성자를 추가하지 않는다. 명시적으로 생성자를 선언하..
객체와 클래스 예를 들어 우리가 자동차를 만든다고 가정해보자. 자동차를 만들려면 무엇이 필요할까? 만들 자동차의 설계도가 필요하다! 객체지향 프로그래밍에서도 마찬가지이다. 메모리에서 사용하고 싶은 객체가 있다면 우선 설계도로 해당 객체를 만드는 작업이 필요하다. 자바에서 설계도가 바로 '클래스' 이다. 클래스에는 객체를 생성하기 위해서 필드와 메소드가 정의되어 있다. 클래스로부터 만들어진 객체를 해당 클래스의 '인스턴스'라 한다. 즉, 자동차란 객체는 자동차 클래스의 인스턴스와 같다. 그리고 클래스로부터 객체를 만드는 과정을 '인스턴스화'라고 한다. 그래서 이게 무엇을 뜻하는 걸까? 하나의 클래스로부터 여러개의 인스턴스를 만드는 것이 가능해진다. (동일한 설계도로 여러대의 자동차를 만드는 것과 같음) - 클래스 선언 ..
객체 지향 프로그래밍 객체 지향 프로그래밍 : 어떤 제품을 만들 때 부픔을 먼저 개발하고 이 부품들을 하나씩 조립해서 제품을 완성한다. 제품을 완성하듯이 소프트웨어를 개발할 때에도 부품에 해당하는 객체를 먼저 만들고, 그 객체를 하나씩 조립해서 완성된 프로그램을 만드는 것. 이것이 객체 지행 프로그래밍(OOP)라 한다. 자바의 객체 속성 (필드) 동작 (메소드) 객체들은 각각 독립적으로 존재하고, 다른 객체와 서로 상호작용하며 동작한다. 객체들 사이의 상호작용 수단 이것이 '메소드' 이다. 이때, 객체가 다른 객체의 기능을 이용하는 것이 바로 메소드의 호출. 메소드 호출의 형태 리턴값 = 전자계산기객체.메소드(매개값1, 매개값2 ...); int result = Calculator.add(10, 20);
null과 NullPointerException null과 NullPointerException 차이 참조 타입 변수는 힙 영역의 객체를 참조하지 않는다는 뜻으로 null 값을 가질 수 있다. null 값도 초기값으로 사용할 수 있기때문에 null로 초기화된 참조 변수는 '스택 영역'에서 생성된다. 참조 타입 면수가 null 값을 가지는지 확인 방법 " ==, != 연산을 수행하자" refVar == null //결과: false refVar != null //결과: true 예외 (Exception) 자바는 프로그램 실행 도중에 발생하는 오류를 예외라고 부른다. 예외가 발생하는 경우 1. 사용자의 잘못된 입력 2. 잘못된 코드 작성 이 중 참조 변수를 사용하면서 가장 많이 발생하는 예외 중 하나가 " NullPointerException "이 있다...
변수(variable) 변수는 값을 저장할 수 있는 메모리의 특정 번지에 붙이는 이름. 프로그램은 변수를 통해 메모리의 '특정' 번지에 값을 저장하고 읽을 수 있다. 메모리에 값을 넣고 싶다면 변수를 선언하고 변수에 값을 지정하면 된다. 그러면 메모리의 어디에 저장하고, 어떤 방식으로 저장할지는 '프로그래밍 언어와 운영체제'가 정한다. 내가 공부하는 자바는 JVM! '하나의 변수에 동시에 두 가지 값을 정할 수 없다' 변수 선언 변수를 사용하기 위해서는 먼저 변수를 선언해야 한다. 데이터 타입 변수명 ; Ex) int a; 같은 타입의 변수는 콤마를 활용하여 한꺼번에 선언도 가능 int a,b,c; 예약어 해당 프로그래밍 언너에서 의미를 갖고 사용되고 있는 단어 (변수 이름으로 사용 불가능) 만약, 예약어로 변수이름을 선언하면..
기본타입과 참조형 타입 //기본형 int i = 4; //참조형 String str = new String("hello world"); 참조타입 참조형 타입은 기본형 타입을 제외한 모든 타입(배열도 참조형이고, 클래스도 모두 참조 타입) 참조형 변수 String str = new String("hello"); str 변수 앞에 기본형 타입이 아닌 String클래스가 적혀있다. 이퀄(=)뒤에는 new 다음에 생성자라는 것이 있다. new 라는 키워드는 객체를 메모리에 올려준다. 이렇게 메모리에 올라간 객체를 인스턴스라고 말한다. 메모리에 올라간 인스턴스를 가리키는 변수, 참조하는 변수, 레퍼런스 하는 변수가 str 이다. 참조한다. 레퍼런스 한다라는 것은 변수가 인스턴스를 가지고 있는게 아니라 말그대로 가리킨다는 의미이다. st..
for each 문 // for문 public class For { public static void main(String[] args) { int [] array = {1, 5, 3, 6, 7}; //for 문을 이용해서 array의 값을 한 줄씩 출력하세요 for(int i=0; i.array.lenth[i]; i++){ int a = array[i]; System.out.println(a); } } } // for each문 public class ForEach { public static void main(String[] args) { int [] array = {1, 5, 3, 6, 7}; //for each문을 이용해서 array의 값을 한 줄씩 출력하세요 for(int a : array){ System.out...