U E D R , A S I H C RSS

새싹교실/2022/Java보시던지/05.12

Difference between r1.3 and the current

@@ -5,70 +5,184 @@
익힌 내용들 - 패키지/import문
이미 알던내용들 - 접근제한자, static
===== 수업내용 =====
클래스에 고정된 멤버로 객체를 생성하지 않고 사용할 수 있는 멤버, 메소드
 
모든객체가 가지고 있어야하고 기능도 같아야한다면 
 
(굳이 똑같은 내용인데?필요가 없는 공간들로 메모리낭비)
 
공통된 건 스태틱
 
 
 
### 접근제한자
'''static'''
* 도입이유: (굳이 똑같은 내용인데?필요가 없는 공간들로 메모리낭비)
* 정의: 클래스에 고정된 멤버로 객체를 생성하지 않고 사용할 수 있는 멤버, 메소드
* 모든객체가 가지고 있어야하고 기능도 같아야한다면 공통된 내용은 스태틱으로

'''접근제한자'''
초기에는 프라이빗으로쓰고 나중에 퍼블릭으로 바꿔주기
===== 새롭게 배운 내용 =====
### 코드리뷰 
'''코드리뷰'''
1. boolean true 을 계산하면 if( A ==true)라고 하는 것보다 if(A)라고 하기
2. 안쓰고 버려질 내용은 변수명으로 주는것보다 바로 계산해버리기
숫자의 자릿수를 받기 위해서 string메소드의 스플릿을 쓰는 방법보다는 nString[] nString = Integer.toString(n).split(””);
charAt으로 받아와서 '0'으로 빼주기 nString.charAt(i) - ‘0’;
### 패키지
 
단순한 파일 시스템의 폴더 기능 뿐만 아니라 클래스의 일부분
 
클래스를 유일하게 만들어주는 식별자 기능
 
기능과 관련된 것을 대략적으로 나눠주는 것(기능별로 분리할때 사용)
 
상위패키지. 하위패키지.클래스
 
클래스만 따로 복사해서 다른 곳으로 이동하면 클래스 사용 불가
 
→ 사용하기 위해서는 패키지 자체를 이용해야한다.
 
소문자로 시작하는 것이 관례 (특수문자x숫자로 시작x)
 
### Import문
 
쓸클래스를 가져오기 import.util.Scanner;(원하는 것을 지정해서 가져오는 것을 추천)
'''패키지'''
* 단순한 파일 시스템의 폴더 기능 뿐만 아니라 클래스의 일부분
* 클래스를 유일하게 만들어주는 식별자 기능
* 기능과 관련된 것을 대략적으로 나눠주는 것(기능별로 분리할때 사용)

전체불러오고 싶다. import java.util.*; (비추 용량이 너무 )
* 상위패키지. 하위패키지.클래스
* 클래스만 따로 복사해서 다른 곳으로 이동하면 클래스 사용 불가
→ 사용하기 위해서는 패키지 자체를 이용해야한다. 
* 소문자로 시작하는 것이 관례 (특수문자x숫자로 시작x)

폴더안의 것은 접근 불가(상위패키지를 import했다고 해서 하위패키지까지 import되지 않음)
'''Import문'''
1. 쓸클래스를 가져오기 import.util.Scanner;(원하는 것을 지정해서 가져오는 것을 추천)
2. 전체불러오고 싶다. import java.util.*; (비추 용량이 너무 큼)

동일 이름이 있을 경우, 풀네임으로 다뤄주기
*폴더안의 것은 접근 불가(상위패키지를 import했다고 해서 하위패키지까지 import되지 않음)
*동일 이름이 있을 경우, 풀네임으로 다뤄주기

===== 느낀점/건의사항 =====
실버문제 난이도가 좋은것 같아요!(너무 어렵지도 않고 쉽지도 않은 문제가 좋아용)

=== [박창훈] ===
===== 난이도 =====

===== 수업내용 =====
* 클래스 멤버(인스턴스 → static X, 정적 → static O)
* 인스턴스 필드 - 객체마다 다른 값
* 정적 필드 - 객체에 상관없이 같은 값
* static 메소드는 클래스로 호출 X, 객체로 호출
* 패키지 - 클래스의 상위 개념(폴더 느낌)
* 상위패키지.하위패키지. … .클래스 (패키지는 소문자로 쓰는 것이 관례)
* import 상위패키지.하위패키지. … .클래스
* import 상위패키지.하위패키지. … .* (→패키지 안에 있는 모든 클래스 import)
* 접근 제한자 (public. protected, private, default)
===== 새롭게 배운 내용 =====
* ASCII code 활용법
* '7'(char) = 87(int, ASCII code)
* '0'(char) = 80(int, ASCII code)
* '7' - '0' = 7
* 변수 사용을 줄이는 게 좋다
* 수업 때 배운 내용들
===== 느낀점/건의사항 =====
* 과제 miss 1스택

== 과제 ==
* [임지민]
*
* Rectangle 클래스 작성
/** 직사각형 클래스 */
public class Rectangle {
/**사각형을 구성하는 점 정보 x,y
* 사각형을 구성하는 크기 정보 width, height */
private int x;
private int y;
private int width;
private int height;
 
/** x,y, width, height 값을 매개변수로 받아 필드를 초기화하는 생성자 */
Rectangle(int x, int y, int width, int height) {
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}
 
/** 사각형 넓이 리턴하는 메소드 */
public int square() {
return width * height;
}
 
/** 사각형의 좌표와 넓이를 화면에 출력하는 메소드 */
public void show(){
System.out.println("(x,y) = ("+x+","+y+")");
System.out.println("넓이 = " + square());
}
}
* 12871 무한 문자열
import java.util.Scanner;
/** 무한문자열
* s와 t가 주어졌을 때, f(s)와 f(t)가 같은 문자열을 만드는지 아닌지 구하는 프로그램 */
public class InfiniteString {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
 
String s = sc.nextLine();
String t = sc.nextLine();
 
sc.close();
if(t.length() > s.length()) { //두 문자열 길이를 비교하여 문자열의 길이가 더 긴걸 s, 짧은 걸 t로 바꿔준다.
String tempString = s;
s = t;
t = tempString;
}
int slen = s.length();
int tlen = t.length();
if(tlen != slen) { //두 문자열의 길이가 같다면 바로 비교하면 된다.
//s와 t의 문자열 길이를 같게 만들어준다.
final int GCD = gcd(slen, tlen);
s = s.repeat(tlen/GCD);
t = t.repeat(slen/GCD);
}
if(s.equals(t)) {
System.out.println(1); // f(s)와 f(t)가 같다.
} else {
System.out.println(0); // f(s)와 f(t)가 다르다.
}
}
/** 두 수의 최대공약수를 구하는 메소드 (유클리드 호제법) */
private static int gcd(int a, int b){
/* 큰 수를 작은 수로 나눈다
* 나누는 수를 나머지로 계속 나눈다
* 나머지가 0이 나오면, 나누는 수가 최대공약수 */
if(b == 0){
return a;
} else{
return gcd(b, a%b);
}
}
 
}

* [박창훈]
*
* Rectangle 클래스
public class Rectangle {
private int x,y,width,height = 0;
Rectangle(int x, int y, int width, int height){
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}
int square() {
int area = width*height;
return area;
}
void show() {
System.out.printf("(%d, %d)", x, y);
System.out.println();
System.out.println(square());
}
}
* 12871 무한 문자열
import java.util.Scanner;
 
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s1 = sc.next();
String s2 = sc.next();
if(s1.repeat(s2.length()).equals(s2.repeat(s1.length()))) {
System.out.println("1");
}
else {
System.out.println("0");
}
sc.close();
}
 
}



Describe 새싹교실/2022/Java보시던지/05.12 here

회고

난이도
익힌 내용들 - 패키지/import문
이미 알던내용들 - 접근제한자, static
수업내용
static
  • 도입이유: (굳이 똑같은 내용인데?필요가 없는 공간들로 메모리낭비)
  • 정의: 클래스에 고정된 멤버로 객체를 생성하지 않고 사용할 수 있는 멤버, 메소드
  • 모든객체가 가지고 있어야하고 기능도 같아야한다면 공통된 내용은 스태틱으로

접근제한자
초기에는 프라이빗으로쓰고 나중에 퍼블릭으로 바꿔주기
새롭게 배운 내용
코드리뷰
1. boolean true 을 계산하면 if( A ==true)라고 하는 것보다 if(A)라고 하기
2. 안쓰고 버려질 내용은 변수명으로 주는것보다 바로 계산해버리기
숫자의 자릿수를 받기 위해서 string메소드의 스플릿을 쓰는 방법보다는 nString[] nString = Integer.toString(n).split(””);
charAt으로 받아와서 '0'으로 빼주기 nString.charAt(i) - ‘0’;
패키지
  • 단순한 파일 시스템의 폴더 기능 뿐만 아니라 클래스의 일부분
  • 클래스를 유일하게 만들어주는 식별자 기능
  • 기능과 관련된 것을 대략적으로 나눠주는 것(기능별로 분리할때 사용)

  • 상위패키지. 하위패키지.클래스
  • 클래스만 따로 복사해서 다른 곳으로 이동하면 클래스 사용 불가
    → 사용하기 위해서는 패키지 자체를 이용해야한다.
  • 소문자로 시작하는 것이 관례 (특수문자x숫자로 시작x)

Import문
1. 쓸클래스를 가져오기 import.util.Scanner;(원하는 것을 지정해서 가져오는 것을 추천)
2. 전체불러오고 싶다. import java.util.*; (비추 용량이 너무 큼)

  • 폴더안의 것은 접근 불가(상위패키지를 import했다고 해서 하위패키지까지 import되지 않음)
  • 동일 이름이 있을 경우, 풀네임으로 다뤄주기

느낀점/건의사항
실버문제 난이도가 좋은것 같아요!(너무 어렵지도 않고 쉽지도 않은 문제가 좋아용)

창훈

난이도


수업내용
  • 클래스 멤버(인스턴스 → static X, 정적 → static O)
  • 인스턴스 필드 - 객체마다 다른 값
  • 정적 필드 - 객체에 상관없이 같은 값
  • static 메소드는 클래스로 호출 X, 객체로 호출
  • 패키지 - 클래스의 상위 개념(폴더 느낌)
  • 상위패키지.하위패키지. … .클래스 (패키지는 소문자로 쓰는 것이 관례)
  • import 상위패키지.하위패키지. … .클래스
  • import 상위패키지.하위패키지. … .* (→패키지 안에 있는 모든 클래스 import)
  • 접근 제한자 (public. protected, private, default)
새롭게 배운 내용
  • ASCII code 활용법
    • '7'(char) = 87(int, ASCII code)
    • '0'(char) = 80(int, ASCII code)
    • '7' - '0' = 7
  • 변수 사용을 줄이는 게 좋다
  • 수업 때 배운 내용들
느낀점/건의사항
  • 과제 miss 1스택

과제

/** 직사각형 클래스 */
public class Rectangle {
/**사각형을 구성하는 점 정보 x,y
  • 사각형을 구성하는 크기 정보 width, height */
private int x;
private int y;
private int width;
private int height;

/** x,y, width, height 값을 매개변수로 받아 필드를 초기화하는 생성자 */
Rectangle(int x, int y, int width, int height) {
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}

/** 사각형 넓이 리턴하는 메소드 */
public int square() {
return width * height;
}

/** 사각형의 좌표와 넓이를 화면에 출력하는 메소드 */
public void show(){
System.out.println("(x,y) = ("+x+","+y+")");
System.out.println("넓이 = " + square());
}
}
  • 12871 무한 문자열
import java.util.Scanner;
/** 무한문자열
  • s와 t가 주어졌을 때, f(s)와 f(t)가 같은 문자열을 만드는지 아닌지 구하는 프로그램 */
public class InfiniteString {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

String s = sc.nextLine();
String t = sc.nextLine();

sc.close();
if(t.length() > s.length()) { //두 문자열 길이를 비교하여 문자열의 길이가 더 긴걸 s, 짧은 걸 t로 바꿔준다.
String tempString = s;
s = t;
t = tempString;
}
int slen = s.length();
int tlen = t.length();

if(tlen != slen) { //두 문자열의 길이가 같다면 바로 비교하면 된다.
//s와 t의 문자열 길이를 같게 만들어준다.
final int GCD = gcd(slen, tlen);
s = s.repeat(tlen/GCD);
t = t.repeat(slen/GCD);

}
if(s.equals(t)) {
System.out.println(1); // f(s)와 f(t)가 같다.
} else {
System.out.println(0); // f(s)와 f(t)가 다르다.
}
}
/** 두 수의 최대공약수를 구하는 메소드 (유클리드 호제법) */
private static int gcd(int a, int b){
/* 큰 수를 작은 수로 나눈다
  • 나누는 수를 나머지로 계속 나눈다
  • 나머지가 0이 나오면, 나누는 수가 최대공약수 */
if(b == 0){
return a;
} else{
return gcd(b, a%b);
}
}

}


  • 창훈
    • Rectangle 클래스
public class Rectangle {
private int x,y,width,height = 0;
Rectangle(int x, int y, int width, int height){
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}
int square() {
int area = width*height;
return area;
}
void show() {
System.out.printf("(%d, %d)", x, y);
System.out.println();
System.out.println(square());
}
}
  • 12871 무한 문자열
import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s1 = sc.next();
String s2 = sc.next();
if(s1.repeat(s2.length()).equals(s2.repeat(s1.length()))) {
System.out.println("1");
}
else {
System.out.println("0");
}
sc.close();
}

}
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2022-05-19 07:22:44
Processing time 0.0899 sec