0826 java

정혜지·2022년 10월 5일

2022.08.26
https://forms.gle/jqJav8ENxR1cYV648

// https://docs.oracle.com/javase/8/docs/
// https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
// https://www.eclipse.org/downloads/packages/release/2020-06/r

// 환경변수 등록
1. 시스템 환경변수 편집
2. 시스템 변수 -> 새로만들기
JAVA_HOME
C:\Program Files\Java\jdk1.8.0_202
3. 시스템 변수 -> Path 편집
-> 새로만들기 : %JAVA_HOME%\bin

// 확인
cmd -> java -version
cmd -> javac -version

변수

    1. 명명
  • 	- 시작은 문자, $, _
  • 	- 대소문자 구분
  • 	- 첫번째 문자는 소문자 시작
  • 	- 개발시 의미있는 이름으로 지정
  • 	- 단어가 이어지는 경우 대문자로 구분
  • 	- 자바 예약어는 주의
  • 	- https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html

// 데이터 타입
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

[기본]
1. 패키지(package) : 비슷한 클래스를 모아둔 자바의 디렉토리
- 소문자와 .으로 명명
- 외부 패키지(클래스) 사용 - import 패키지명.클래스명

  1. 클래스(class) : 객체를 만들기 위한 설계도
    • 구조
      class 클래스명 {
      멤버(클래스)변수 : 객체 고유의 데이터
      		생성자(Constructor) : 객체 생성을 위한 필수 요소
      	
      		메소드(Method) : 기능 수행을 위해 요소
      	}
  2. 객체(Object) : 물리적으로 존재하는 물체 혹은 추상적인 개념

[학습]
1. 변수(Variable) : 하나의 값을 저장할 수 있는 메모리 공간
- 구조
타입 변수명; - 선언
변수명 = 값; - 할당

	= > 타입 변수명 = 값; - 초기화

- 구분
	1. 타입
		1-1. 기본(primitive) 타입 
			- 형태와 사이즈(크기)로 구분
			
			정수 byte(8), short(16), int(32), long(64)
				기본값 0
			- 2^(n-1) ~ 2^(n-1) - 1
				
			
			실수 float(32), double(64)
				0.0
				(3.4 X 10-38) ~ (3.4 X 1038)
				(1.7 X 10-308) ~ (1.7 X 10308)
					
			
			문자 char(16)
				\u0000
				음수의 범위 없이 유니코드 ( 0 ~ 65535) 범위
			
			논리 boolean(8)
				false
		
		1-2. 참조(reference) 타입
			- 객체의 주소값을 참조하는 타입
				
			문자열(String), 배열(Array), 클래스(Class), 인터페이스(Interface)
			
			사용자 정의
			
			null
			
	2. 위치
		2-1. 로컬(local) 변수
			- 위치 : 코드블럭 / 생성자, 메소드의 매개변수
			- 생성자와 메소드를 호출시 사용가능
		
		2-2. 멤버(클래스) 변수
			- 위치 : 클래스{ 바로 하단
			- 객체 생성시 기본값으로 초기화 및 사용 가능
			
- 호출
	1. static 변수 / 메소드
	
	2. non-static 변수 / 메소드

// Ex03Operation.java
// 숫자 연산
// 기본 연산 : +, -, *, /, %
System.out.println("===기본연산===");
int v1 = 10;
int v2 = 3;

// System.out.println(v1 + v2);
// System.out.println(v1 - v2);
// System.out.println(v1 * v2);
// System.out.println(v1 / v2);
// System.out.println(v1 % v2);

	// 증감 연산 : ++, --
	System.out.println("===증감연산===");

// System.out.println(v1);
// System.out.println(v1++);
// System.out.println(v1);
// System.out.println(++v1);
// System.out.println(v1);
//
// 3.33.... 으로 출력?

// // 논리 연산 : &&, ||, ^, !
System.out.println("===논리연산===");
boolean t = true;
boolean f = false;

	// && : 모든 연산자가 true라면 결과도 true

// System.out.println(t & t);
// System.out.println(f & f);
// System.out.println(t & f);
// System.out.println(f && t);

	// || : 연산자중 하나만 true라도 결과는 true

// System.out.println(t || t);
// System.out.println(f || f);
// System.out.println(t || f);
// System.out.println(f || t);

	// ^ : 연산자 하나는 true, 다른 하나는 false일때 결과는 true

// System.out.println(t ^ t);
// System.out.println(f ^ f);
// System.out.println(t ^ f);
// System.out.println(f ^ t);

	// ! : 논리값을 변경 (t -> f, f -> t)

// System.out.println(f);
// System.out.println(!f);

	// 비교연산 : <, >, <=, >=, ==, !=
	System.out.println("===비교연산===");
	int num1 = 1;
	int num2 = 10;

// System.out.println(num1 == num2);
// System.out.println(num1 != num2);
//
// double num3 = 1.0;
// System.out.println(num1 == num3);

	// 대입연산 : =, +=, -=, ...
	System.out.println("===대입연산===");

// int assign = 0;
// System.out.println(assign);
// assign += 10;
// System.out.println(assign);
// assign -= 5;
// System.out.println(assign);
// assign *= 5;
// System.out.println(assign);

// https://6kkki.tistory.com/8

// condition
/* 조건문(Condition) : 주어진 조건이 참일 경우, 주어진 기능 수행
1. if문
- 문법
if(조건식) {
수행 코드;
...
}else if(조건식){
수행 코드;
...
}else {
수행 코드;
}

- 종류
	1. if : 조건이 하나인 경우
	2. if -else : 조건이 하나, 조건이 거짓 -> else 블럭의 코드가 실행
	3. if -else if -else... : 조건이 여러개
	
  1. switch/case문 : 변수 값에 따라 수행코드 결정
    - 문법
    switch(변수값){
    case 입력값1:
    수행 코드;
    case 입력값2:
    수행 코드;
    			...
    	
    			default:
    				수행 코드;
    		}
    */

/*반복문(Loop)
1. for문 : 반복 횟수가 정확할 때
- 구조
for(변수 선언과 초기화; 조건식; 증감식){
수행 코드;
...
}

- 종류
	1. 기본 for문
	2. for Each문
		for(타입 변수 : 데이터 저장객체){
			수행 코드;
			...
		}
		
  1. while문 : 반복 횟수가 불명확 또는 무한

    • 구조
      초기식;
      while(조건식){
      수행 코드;
      ...
      증감식;
      }
  2. do ~ while문 : 반복 조건 검증전 한번 실행후, while문
    - 구조
    초기식;
    do{
    실행 로직, 증감식;
    }while문(조건식);

    */

/* 참조 타입

    • 기본 타입처럼 실제 데이터 값이 아닌 객체의 주소를 참조하는 타입
    • 변수 스택(stack), 객체 힙(heap) 영역에서 생성
    • 기본 값 : null
  • - 참조할 객체가 없을 경우, NullPointerException 발생
    /
    /
    클래스와 객체
    • 데이터 값을 저장 및 제공
    • 설계
    1. 데이터 : name, age
    1. 기능 : name, age 반환 / 단순 출력
    • 개발
    1. 데이터 저장에 필요한 메모리
    1. 기능 구별, 수행을 위한 코드 작성
  • * 객체 생성
    • 클래스를 개발하는 것이 객체를 만드는 것은 아니다
      */

// Ex04Static.java
/* 정적(Static)

    • '고정'이라는 의미를 가지며 객체 소속이 아닌 클래스 소속
    • 객체 생성 없이도 사용 가능
    • 구조 및 종류
  • 	- static 타입 변수
  • 	- static 리턴타입 메소드
    • 사용 : 공용 데이터 값 지정
      */

class Student {
String name;
int age;

Student() {}

Student(String name, int age) {
	this.name = name;
	this.age = age;
}

String getName() {
	return name;
}

int getAge() {
	return age;
}

void setAge(int age) {
	if (age > 0) {
		this.age = age;
	}else {
		System.out.println("지정한 나이로 update 할수 없음");
	}
}

}

profile
오히려 좋아

0개의 댓글