JAVA/[생활코딩] 자바

JAVA/[생활코딩] 자바

[생활코딩] 참조, 제네릭, collections framework

참조 복제 new를 붙이는 데이터형은 참조 데이터형이며 그 외 char, int 등은 기본 데이터형이다. public class ReferenceDemo1 { public static void runValue(){ int a = 1; int b = a; b = 2; System.out.println("runValue, "+a); } public static void main(String[] args) { runValue(); } } // 실행 결과 runValue, 1 a라는 상자에다가 1을 넣고, b라는 상자는 a 상자 안에 있는 값으로 복제한다. b라는 상자에 값을 2로 다시 넣는다고 한들 a 상자 안에 값을 변하지 않는다. 참조 class A{ public int id; A(int id){ this..

JAVA/[생활코딩] 자바

[생활코딩] 예외 처리, Object 클래스, 상수와 enum

예외 1 - 문법 오리엔테이션 예외 처리란 간단하게 말하자면 프로그램 개발 과정에서 발생하는 오류를 제어, 처리하는 것이다. 지금까지 배운 것이 성공하기 위한 지식이였다면 예외 처리는 실패하지 않기 위한 지식이라고 볼 수 있다. 예외란 무엇인가 오류라는 것은 예외의 일종이다. 예외란 개발자가 계획한 것 외에 일반적이지 않은 상황이 발생했을 경우를 뜻한다. 예외 상황을 처리, 관리하는 것 또한 예외 혹은 예외 처리라고 부른다. ex) 계산기 class Calculator{ int left, right; public void setOprands(int left, int right){ this.left = left; this.right = right; } public void divide(){ System.o..

JAVA/[생활코딩] 자바

[생활코딩] 접근 제어자, abstract, final, 인터페이스, 다형성

1. 접근 제어자 자유와 규제 너무 자유로우면 소통에 어려움을 겪게 되기에 적정선의 규제가 필요하다. 접근 제어자, 추상 클래스, final, 인터페이스 등이 규제에 해당한다. 문법 접근 제어자 객체 안에 멤버들(변수, 메소드)을 사용할 때의 권한 // public이 접근 제어자 public String x(){ return "public"; } // private이 접근 제어자 private String y(){ return "private"; } 사용이유 보안이나 로직상의 이유로 사용자, 즉 외부에서 접근 규제하여 오작동 발생을 줄일 수 있기 때문이다. 세밀한 제어 public protected default private 동일 패키지 동일 클래스 O O O O 동일 패키지 상속 관계 O O O X ..

JAVA/[생활코딩] 자바

[생활코딩] overriding, overloading, 클래스 패스, 패키지, API와 API 문서 보는 법

overriding 부모 클래스가 가지고 있는 메소드를 자식 클래스가 재정의하여 사용하는 것 단, 아래의 조건은 부모 클래스와 자식 클래스가 동일해야한다. 메소드의 이름 메소드 매개변수의 숫자와 데이터 타입 그리고 순서 메소드의 리턴 타입 위와 같이 메소드의 형태를 정의하는 사항들을 통틀어 메소드의 서명(signature)라고 한다. 메소드의 서명을 지키려다보면 코드의 중복이 발생할 수 있다. 이럴 때는 super를 활용하면 해결할 수 있다. overloading 같은 메소드 이름이지만 매개변수의 타입이나 갯수를 변경하여 작성하는 것 overloading을 하는 경우 메소드의 기능이 비슷할 것이기에 코드 역시 중복이 발생하게 된다. this.메소드명(파라미터..)와 같이 this를 활용해주면 중복을 줄일..

JAVA/[생활코딩] 자바

[생활코딩] 자바 유효범위, 초기화와 생성자, 상속, 상속과 생성자

유효범위 (scope) public class ScopeDemo{ static void a(){ int i = 0; } public static void main(String args[]){ for(int i = 0; i < 5; i++){ a(); System.out.println(i); } } } /* 실행 결과 0 1 2 3 4 */ 만약 유효범위 (scope)가 없다면 위 코드의 for문은 무한루프에 빠지게 된다. 아무리 for문에서 i++를 해줘도 a() 메소드로 인해 다시 0으로 초기화되기 때문이다. 하지만 위 코드가 정상적인 실행 결과를 보여주는 이유는 충돌이 발생하는 것을 해결하기 위해 고안된 유효범위 덕분이다. 비교를 위해 위 코드와 같은 동작을 하지만 충돌이 발생하는 코드는 아래와 같다..

JAVA/[생활코딩] 자바

[생활코딩] 자바 객체지향프로그래밍, 클래스와 인스턴스 그리고 객체, 클래스 멤버와 인스턴스 멤버

객체 지향 프로그래밍 객체지향 프로그래밍 영어를 줄여서 OOP라고도 함 변수와 메소드로 그룹핑된 하나하나가 객체 ~> 재활용성 UP 내가 원하는 정보만 추출해내는 것 => 추상화 부품화 즉 객체로 나누는 것이 무조건 유용한 것을 아님 ex) 컴퓨터(부품화O) -> 핸드폰(부품화X) - 정보의 은닉화(캡슐화) : 내부 동작 방법을 케이스로(객체) 숨기고 사용 방법(메소드)만 노출 - 인터페이스 : 규격이 표준화돼있어 서로 연결 가능. 이러한 연결점이 인터페이스 클래스와 인스턴스 그리고 객체 클래스 = 설계도(붕어빵틀), 인스턴스 = 제품(붕어빵) 중복의 제거(재활용성 가독성 UP) 하려면 메소드 사용을 해야하고, 메소드를 사용하여 중복을 제거하는 것이 리팩토링(동일동작이지만 코드를 수정하여 효율UP) 인스..

JAVA/[생활코딩] 자바

[생활코딩] 자바 숫자와 문자, 변수, 주석과 세미콜론, 데이터 타입, 상수의 데이터 타입, 형변환, 연산자, 비교와 Boolean

스프링 스터디를 진행하게 되었습니다. 본격적인 스프링 스터디 전 자바 지식을 리마인드 시키자고 결정이 되어 빠르게 익힐 수 있도록 짧은 강의가 여러 개 구성되어있는 생활코딩 강의를 매주 정해진 량 듣고 서로 강의해주는 식으로 스터디를 진행하기로 했습니다. 이 카테고리 또한 제 다른 포스팅과 마찬가지로 강의 전 내용이 아닌 내용 중 일부 제가 모르는 것에 대해서만 작성합니다. 실제 생활 코딩 강의를 들어보시는 것을 추천드립니다 :) https://opentutorials.org/course/1223/4551 1. 숫자와 문자 데이터타입 = 자료형 = 데이터형 1 숫자 '1' 문자 "1" 문자열 \" 2. 변수 헝가리안 표기법으로 자료형을 변수명 정의 시 같이 작성하면 자료형 추정 유리 변수는 코드의 재사용..

eune7
'JAVA/[생활코딩] 자바' 카테고리의 글 목록