<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=211.108.138.214</id>
	<title>ZeroWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=211.108.138.214"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php/Special:Contributions/211.108.138.214"/>
	<updated>2026-05-15T06:00:06Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=%EC%83%88%EC%8B%B9%EA%B5%90%EC%8B%A4/2021/%EB%8B%A4Java%EB%A8%B9%EC%9E%90/%EA%B9%80%EB%8F%99%EC%98%81&amp;diff=60307</id>
		<title>새싹교실/2021/다Java먹자/김동영</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=%EC%83%88%EC%8B%B9%EA%B5%90%EC%8B%A4/2021/%EB%8B%A4Java%EB%A8%B9%EC%9E%90/%EA%B9%80%EB%8F%99%EC%98%81&amp;diff=60307"/>
		<updated>2021-11-11T11:47:23Z</updated>

		<summary type="html">&lt;p&gt;211.108.138.214: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= 1주차 수업 회고 =&lt;br /&gt;
JS와 JAVA 사이에 접점이 있을 것이라 생각하고 JAVA를 배우겠다고 투표했다.&lt;br /&gt;
오늘 둘 사이에 별로 큰 접점이 없다는 것을 알았지만 상관없다.&lt;br /&gt;
어차피 JAVA도 처음 해보는 것이니 분명 새로운 것을 많이 배울 수 있을 것이다.&lt;br /&gt;
&lt;br /&gt;
= 2주차 수업 회고 =&lt;br /&gt;
불참했다.&lt;br /&gt;
&lt;br /&gt;
== assignment 1 ==&lt;br /&gt;
1부터 100까지의 정수 중에서 짝수들의 합을 계산하여 결과값을 출력하는 프로그램을 구현한다.&lt;br /&gt;
조건 : while문을 사용하고, if 문은 사용하지 않도록 한다.&lt;br /&gt;
 &lt;br /&gt;
 public class Hello {&lt;br /&gt;
 	public static void main(String[] args) {&lt;br /&gt;
 		int i=1, sum=0;&lt;br /&gt;
 		while(i&amp;amp;lt;=100) {&lt;br /&gt;
 			sum += i;&lt;br /&gt;
 			i++;&lt;br /&gt;
 		}&lt;br /&gt;
 		System.out.print(sum);&lt;br /&gt;
 	}	&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== assignment 2 ==&lt;br /&gt;
주어진 10진수를 2진수로 변환하는 프로그램을 구현한다.&lt;br /&gt;
 &lt;br /&gt;
 import java.util.Scanner;&lt;br /&gt;
 &lt;br /&gt;
 public class Hello {&lt;br /&gt;
 	public static void main(String[] args) {&lt;br /&gt;
 		Scanner scanner = new Scanner(System.in);		&lt;br /&gt;
 		int n = scanner.nextInt();&lt;br /&gt;
 		&lt;br /&gt;
 		long digit=1, sum=0;&lt;br /&gt;
 		while(n!=0) {&lt;br /&gt;
 			sum += n%2 * digit;&lt;br /&gt;
 			n /= 2;&lt;br /&gt;
 			digit *= 10;&lt;br /&gt;
 		}&lt;br /&gt;
 		System.out.print(sum+&amp;quot;(2)&amp;quot;);&lt;br /&gt;
 		scanner.close();&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
문법 자체는 c++과 많이 다르지 않은 것 같다.&lt;br /&gt;
2번에서 12345같은 꽤 큰 수를 입력하면 이상한 값이 출력되는 것을 방지하기 위해 long 형을 사용했다. 하지만 그래도 표현상 한계가 있다.&lt;br /&gt;
배열을 사용하는 풀이가 가장 편한 것 같다. 자바에도 스택이 있는 지 모르겠다. 2번 풀이를 추가해야 함.&lt;br /&gt;
&lt;br /&gt;
= 3주차 수업 회고 =&lt;br /&gt;
불참.&lt;br /&gt;
주말에 과제를 몰아서 하는 습관을 없애야겠다. ppt로 직접 공부하고 2주차 숙제, 3주차 숙제를 해봐야겠다.&lt;br /&gt;
&lt;br /&gt;
== assignment 1 ==&lt;br /&gt;
주어진 배열의 항목에서 최댓값 구하기&lt;br /&gt;
int[] array = {1, 5, 3, 8, 2}&lt;br /&gt;
 &lt;br /&gt;
 public class Hello {&lt;br /&gt;
 	public static void main(String[] args) {&lt;br /&gt;
 		int[] array = {1, 5, 3, 8, 2};&lt;br /&gt;
 		int max = 0;&lt;br /&gt;
 		for(int i=0; i&amp;amp;lt;5; i++) {&lt;br /&gt;
 			 max = ((max &amp;amp;lt; array[i]) ? array[i] : max);&lt;br /&gt;
 		}&lt;br /&gt;
 		System.out.print(max);&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
삼항연산자를 써서 풀어봤다.&lt;br /&gt;
&lt;br /&gt;
= 4주차 수업 회고 =&lt;br /&gt;
생성자를 오버로딩할 때 겹치는 코드를 줄이기 위해서 다른 생성자를 끌어다 사용한다는 점이 인상적이었다.&lt;br /&gt;
&lt;br /&gt;
자바에서도 매개변수에 디폴트값을 넣는 게 가능한지 궁금했는데, 물론 그냥 필드를 선언할 때 값을 지정해주면 그만이다.&lt;br /&gt;
근데 자바나 C에선 new function()으로 함수를 생성할 때 매개변수의 입력 경우의 수에 따라 함수를 재정의해주어야 한다.&lt;br /&gt;
C에서는&lt;br /&gt;
 void Function(char param1, int param2, double param3=9.8);&lt;br /&gt;
같은 형태로 매개변수에 디폴트값을 넣어 하나의 함수로도 매개변수가 2개, 3개일 때 동시에 사용할 수 있다.&lt;br /&gt;
이런 형태가 java 클래스의 생성자에서도 쓰일 수 있는지 시험해봐야겠다.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 // student.java&lt;br /&gt;
 package QW;&lt;br /&gt;
 public class Student {&lt;br /&gt;
 	String department = &amp;quot;소프트웨어학부&amp;quot;;&lt;br /&gt;
 	String gender = &amp;quot;female&amp;quot;;&lt;br /&gt;
 	int studentId = 21;&lt;br /&gt;
 	&lt;br /&gt;
 	Student(){&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // test.java&lt;br /&gt;
 package QW;&lt;br /&gt;
 &lt;br /&gt;
 public class Test {&lt;br /&gt;
 	public static void main(String[] args) {&lt;br /&gt;
 		Student student = new Student();&lt;br /&gt;
 		System.out.println(student.department);&lt;br /&gt;
 		System.out.println(student.studentId);&lt;br /&gt;
 		System.out.println(student.gender);&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #2&lt;br /&gt;
 &lt;br /&gt;
 //test.java&lt;br /&gt;
 package QW;&lt;br /&gt;
 import java.util.Scanner;&lt;br /&gt;
 &lt;br /&gt;
 public class Test {&lt;br /&gt;
 	public static void main(String[] args) {&lt;br /&gt;
 		String department, gender;&lt;br /&gt;
 		int studentId;&lt;br /&gt;
 		&lt;br /&gt;
 		Scanner sc = new Scanner(System.in);&lt;br /&gt;
 		System.out.println(&amp;quot;학부: &amp;quot;);&lt;br /&gt;
 		department = sc.next();&lt;br /&gt;
 		System.out.println(&amp;quot;학번: &amp;quot;);&lt;br /&gt;
 		studentId = sc.nextInt();&lt;br /&gt;
 		System.out.println(&amp;quot;성별: &amp;quot;);&lt;br /&gt;
 		gender = sc.next();&lt;br /&gt;
 		&lt;br /&gt;
 		Student student = new Student(department, studentId, gender);&lt;br /&gt;
 		System.out.println(student.department);&lt;br /&gt;
 		System.out.println(student.studentId);&lt;br /&gt;
 		System.out.println(student.gender);&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 //student.java&lt;br /&gt;
 package QW;&lt;br /&gt;
 public class Student {&lt;br /&gt;
 	String department, gender;&lt;br /&gt;
 	int studentId;&lt;br /&gt;
 	&lt;br /&gt;
 	Student(String department, int studentId, String gender){&lt;br /&gt;
 		this.department = department;&lt;br /&gt;
 		this.gender = gender;&lt;br /&gt;
 		this.studentId = studentId;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
== 댓글 ==&lt;br /&gt;
* https://bluesid.tistory.com/251 도움이 될 만한 링크인 것 같아요 - [[김은솔]]&lt;br /&gt;
&lt;br /&gt;
= 5주차 수업 회고 =&lt;br /&gt;
저번 시간에 생성자에 대해 배웠다면 이번엔 필드, 변수, 매소드에 대해 배웠다.&lt;br /&gt;
형태만 다르지 c++이나 파이썬과 코드의 흐름은 비슷해서 배우기 어렵지 않았다.&lt;br /&gt;
다만 ststic final 으로 상수를 선언하는 게 신기했다. c에서도 const 등으로 상수를 선언하긴 하지만, 그것보단 #define으로 선언하는 게 더 익숙해져서인지 새삼스러웠다. #define은 변수를 생성한다기보단 그냥 PI라는 이름이 나오면 3.14로 치환해주는 함수같은 형태라면 const와 final은 변수의 형태이지만 여러 제약을 통해 상수로서 역할하는 것이다. 이 둘 사이에도 차이가 있다고 하는데 c++ 이론도 완벽하진 않아서 둘의 차이를 공부하긴 힘들 것 같다. 그래도 새싹톤 참가 전엔 약간이라도 알아보는 게 도움이 될 듯하다.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;필수&amp;amp;gt;&lt;br /&gt;
 - 사칙연산이 가능해야 한다.&lt;br /&gt;
 - 3.14의 값을 갖는 pi를 정적 변수로 선언한다.&lt;br /&gt;
 - 나눗셈의 매개 변수는 int, double 두 개로 선언한다.&lt;br /&gt;
 - 계산기 변수가 몇 번 만들어졌는지 확인할 수 있는 정적 필드 calculatorSetCount를 만들어야 한다. (계산기가 생성될 때마다 setCount의 숫자를 증가시킨다.)&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;Calculator class&amp;amp;gt;&lt;br /&gt;
 - 사칙연산 메소드&lt;br /&gt;
 - 정적 필드 pi&lt;br /&gt;
 - circleArea 메소드 : &lt;br /&gt;
 원의 넓이를 구하는 메소드. pi를 사용해야 한다. 반지름을 하나 입력받는다. 매개 변수의 타입은 int로 한다.&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;TestMain class&amp;amp;gt;&lt;br /&gt;
 - 계산기 변수를 선언하고 덧셈, 나눗셈을 수행한 후 값을 출력한다.&lt;br /&gt;
 - 새로운 계산기 변수를 선언하고 원의 넓이를 계산하고 출력한다.&lt;br /&gt;
 - calculatorSetCount를 출력한다.&lt;br /&gt;
&lt;br /&gt;
 //Calculator.java&lt;br /&gt;
 package practice;&lt;br /&gt;
 &lt;br /&gt;
 public class Calculator {&lt;br /&gt;
 	static final double PI = 3.14;&lt;br /&gt;
 	static int calculatorSetCount = 0;&lt;br /&gt;
 	&lt;br /&gt;
 	Calculator(){&lt;br /&gt;
 		calculatorSetCount++;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	int addition(int x, int y) {&lt;br /&gt;
 		int result = x+y;&lt;br /&gt;
 		return result;&lt;br /&gt;
 	}&lt;br /&gt;
 	int subtraction(int  x, int y) {&lt;br /&gt;
 		int result = x-y;&lt;br /&gt;
 		return result;&lt;br /&gt;
 	}&lt;br /&gt;
 	int multiplication(int x, int y) {&lt;br /&gt;
 		int result = x*y;&lt;br /&gt;
 		return result;&lt;br /&gt;
 	}&lt;br /&gt;
 	int division(int x, int y) {&lt;br /&gt;
 		int result = x/y;&lt;br /&gt;
 		return result;&lt;br /&gt;
 	}&lt;br /&gt;
 	double division(double x, double y) {&lt;br /&gt;
 		double result = x/y;&lt;br /&gt;
 		return result;&lt;br /&gt;
 	}&lt;br /&gt;
 	double circleArea(int x) {&lt;br /&gt;
 		double result = PI*x*x;&lt;br /&gt;
 		return result;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 //TestMain.java&lt;br /&gt;
 package practice;&lt;br /&gt;
 &lt;br /&gt;
 import java.util.Scanner;&lt;br /&gt;
 &lt;br /&gt;
 public class TestMain {&lt;br /&gt;
 	public static void main(String[] args) {&lt;br /&gt;
 		Scanner sc = new Scanner(System.in);&lt;br /&gt;
 		&lt;br /&gt;
 		Calculator cal_1 = new Calculator();&lt;br /&gt;
 		int additionInt = cal_1.addition(10, 20);&lt;br /&gt;
 		System.out.println(additionInt);&lt;br /&gt;
 		int divisionInt = cal_1.division(30, 20);&lt;br /&gt;
 		System.out.println(divisionInt);&lt;br /&gt;
 		double divisionDouble = cal_1.division(5.0, 2.3);&lt;br /&gt;
 		System.out.println(divisionDouble);&lt;br /&gt;
 &lt;br /&gt;
 		Calculator cal_2 = new Calculator();&lt;br /&gt;
 		System.out.println(&amp;quot;반지름을 입력하세요: &amp;quot;);&lt;br /&gt;
 		int radius = sc.nextInt();&lt;br /&gt;
 		&lt;br /&gt;
 		double circleArea = cal_2.circleArea(radius);&lt;br /&gt;
 		System.out.println(circleArea);&lt;br /&gt;
 		&lt;br /&gt;
 		System.out.println(Calculator.calculatorSetCount);&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
이렇게 써놓고 보니 TestMain.java에서 &lt;br /&gt;
 Calculator.calculatorSetCount+=1;&lt;br /&gt;
으로 {{{calculatorSetCount}}}에 접근이 가능한 것 같아서 별로이다. 이런 코드보단, {{{private static int calculatorSetCount = 0;}}}으로 {{{calculatorSetCount}}}에 접근이 불가능하도록 해놓고, {{{static int getCalculatorSetCount() {&lt;br /&gt;
		return calculatorSetCount;&lt;br /&gt;
	}&lt;br /&gt;
}}} 같은 형식으로 getter 함수를 만들어주는 게 더 명확한 것 같다. 그리고 다음부턴 매소드나 필드 모두에 private이든 public이든 써주어야 헷갈리지 않을 것 같다. 그러기 위해선 접근 지정자에 대해 더 공부해야할 것 같은데, 이것도 시험 끝나면 한번 정리해봐야겠다.&lt;br /&gt;
&lt;br /&gt;
= 6주차 수업 회고 =&lt;br /&gt;
&#039;상속&#039; 하나만 배웠는데도, 다른 시간보다 배운 게 더 많은 것 같다.&lt;br /&gt;
&lt;br /&gt;
* 실습&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;Fruit class&amp;amp;gt;&lt;br /&gt;
 - String name, String color, String flavor&lt;br /&gt;
 - 생성자는 같은 패키지와 자식에서만 쓸 수 있도록 선언&lt;br /&gt;
 - 생성자의 입력은 name, color, flavor 3개가 동시에 들어온다.&lt;br /&gt;
 - name, color, flavor를 출력하는 메소드 print를 선언&lt;br /&gt;
 - 메소드는 public으로 선언&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;Apple class&amp;amp;gt;&lt;br /&gt;
 - color는 red로 고정&lt;br /&gt;
 - print를 오버라이딩해서 color가 red인 경우 This is Apple을 출력하도록 할 것. 그 이외에는 Fruit의 print를 호출할 것&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;Test class&amp;amp;gt;&lt;br /&gt;
 - Fruit을 선언하고, 임의의 값 (name, color, flavor 3개를 넣을 것, 단 color는 red가 아닌 다른 값을 넣는다) 을 넣어 초기화한다.&lt;br /&gt;
 - Apple을 선언하고, 임의의 값 (color 제외하고 2개를 넣을 것)을 넣어 초기화한다.&lt;br /&gt;
 - 각각 Fruit 과 Apple의 print를 호출한다.&lt;br /&gt;
수업 당시 실습 전에 강의실을 나와버려서 코드 확인은 받지 못했다.&lt;br /&gt;
 	private String color = &amp;quot;red&amp;quot;;&lt;br /&gt;
 	public Apple(String name, String flavor){&lt;br /&gt;
 		super(name, this.color, flavor);&lt;br /&gt;
 	}&lt;br /&gt;
처음 Fruit 클래스의 코드를 이렇게 썼을 때 &lt;br /&gt;
: &amp;quot;Cannot refer to &#039;this&#039; nor &#039;super&#039; while explicitly invoking a constructor&amp;quot;&lt;br /&gt;
&lt;br /&gt;
라는 오류메세지가 떴다. 생성자를 호출할 때는 this와 super를 통한 참조가 불가능하다고 하는 것 같은데, 또 생성자 호출은 생성자에서 첫 번째 줄의 코드에 나와야 해서 &lt;br /&gt;
 	private String color = &amp;quot;red&amp;quot;;&lt;br /&gt;
 	public Apple(String name, String flavor){&lt;br /&gt;
 		String color = this.color;&lt;br /&gt;
 		super(name, color, flavor);&lt;br /&gt;
 	}&lt;br /&gt;
같은 형태도 불가능하다.&lt;br /&gt;
그래서 &lt;br /&gt;
 	public Apple(String name, String flavor){&lt;br /&gt;
 		super(name, &amp;quot;red&amp;quot;, flavor);&lt;br /&gt;
 	}&lt;br /&gt;
로 일단 짜긴 했는데 더 좋은 방법이 있을지 궁금하다. 이건 좀 난잡한 코드인 것 같다.&lt;br /&gt;
&lt;br /&gt;
= Q =&lt;br /&gt;
제 이름으로 된 새로운 페이지를 만들고 싶어서 https://wiki.zeropage.org/wiki.php/%EC%83%88%ED%8E%98%EC%9D%B4%EC%A7%80%EB%A7%8C%EB%93%A4%EA%B8%B0&lt;br /&gt;
을 참고해서 Go에 제 이름을 쳤는데, 자꾸 이 링크로 접속이 되네요. 이건 어떻게 해결해야 할까요? 이 페이지를 삭제하고 제 페이지를 만들고 다시 이 페이지를 복구해야 할까요?&lt;br /&gt;
그리고 정모 링크가 올라오는 사이트가 혹시 따로 있나요?&lt;br /&gt;
감사합니다.&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>211.108.138.214</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=%EC%83%88%EC%8B%B9%EA%B5%90%EC%8B%A4/2021/%EB%8B%A4Java%EB%A8%B9%EC%9E%90/%EA%B9%80%EB%8F%99%EC%98%81&amp;diff=60306</id>
		<title>새싹교실/2021/다Java먹자/김동영</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=%EC%83%88%EC%8B%B9%EA%B5%90%EC%8B%A4/2021/%EB%8B%A4Java%EB%A8%B9%EC%9E%90/%EA%B9%80%EB%8F%99%EC%98%81&amp;diff=60306"/>
		<updated>2021-11-11T11:46:53Z</updated>

		<summary type="html">&lt;p&gt;211.108.138.214: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
= 1주차 수업 회고 =&lt;br /&gt;
JS와 JAVA 사이에 접점이 있을 것이라 생각하고 JAVA를 배우겠다고 투표했다.&lt;br /&gt;
오늘 둘 사이에 별로 큰 접점이 없다는 것을 알았지만 상관없다.&lt;br /&gt;
어차피 JAVA도 처음 해보는 것이니 분명 새로운 것을 많이 배울 수 있을 것이다.&lt;br /&gt;
&lt;br /&gt;
= 2주차 수업 회고 =&lt;br /&gt;
불참했다.&lt;br /&gt;
&lt;br /&gt;
== assignment 1 ==&lt;br /&gt;
1부터 100까지의 정수 중에서 짝수들의 합을 계산하여 결과값을 출력하는 프로그램을 구현한다.&lt;br /&gt;
조건 : while문을 사용하고, if 문은 사용하지 않도록 한다.&lt;br /&gt;
 &lt;br /&gt;
 public class Hello {&lt;br /&gt;
 	public static void main(String[] args) {&lt;br /&gt;
 		int i=1, sum=0;&lt;br /&gt;
 		while(i&amp;amp;lt;=100) {&lt;br /&gt;
 			sum += i;&lt;br /&gt;
 			i++;&lt;br /&gt;
 		}&lt;br /&gt;
 		System.out.print(sum);&lt;br /&gt;
 	}	&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== assignment 2 ==&lt;br /&gt;
주어진 10진수를 2진수로 변환하는 프로그램을 구현한다.&lt;br /&gt;
 &lt;br /&gt;
 import java.util.Scanner;&lt;br /&gt;
 &lt;br /&gt;
 public class Hello {&lt;br /&gt;
 	public static void main(String[] args) {&lt;br /&gt;
 		Scanner scanner = new Scanner(System.in);		&lt;br /&gt;
 		int n = scanner.nextInt();&lt;br /&gt;
 		&lt;br /&gt;
 		long digit=1, sum=0;&lt;br /&gt;
 		while(n!=0) {&lt;br /&gt;
 			sum += n%2 * digit;&lt;br /&gt;
 			n /= 2;&lt;br /&gt;
 			digit *= 10;&lt;br /&gt;
 		}&lt;br /&gt;
 		System.out.print(sum+&amp;quot;(2)&amp;quot;);&lt;br /&gt;
 		scanner.close();&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
문법 자체는 c++과 많이 다르지 않은 것 같다.&lt;br /&gt;
2번에서 12345같은 꽤 큰 수를 입력하면 이상한 값이 출력되는 것을 방지하기 위해 long 형을 사용했다. 하지만 그래도 표현상 한계가 있다.&lt;br /&gt;
배열을 사용하는 풀이가 가장 편한 것 같다. 자바에도 스택이 있는 지 모르겠다. 2번 풀이를 추가해야 함.&lt;br /&gt;
&lt;br /&gt;
= 3주차 수업 회고 =&lt;br /&gt;
불참.&lt;br /&gt;
주말에 과제를 몰아서 하는 습관을 없애야겠다. ppt로 직접 공부하고 2주차 숙제, 3주차 숙제를 해봐야겠다.&lt;br /&gt;
&lt;br /&gt;
== assignment 1 ==&lt;br /&gt;
주어진 배열의 항목에서 최댓값 구하기&lt;br /&gt;
int[] array = {1, 5, 3, 8, 2}&lt;br /&gt;
 &lt;br /&gt;
 public class Hello {&lt;br /&gt;
 	public static void main(String[] args) {&lt;br /&gt;
 		int[] array = {1, 5, 3, 8, 2};&lt;br /&gt;
 		int max = 0;&lt;br /&gt;
 		for(int i=0; i&amp;amp;lt;5; i++) {&lt;br /&gt;
 			 max = ((max &amp;amp;lt; array[i]) ? array[i] : max);&lt;br /&gt;
 		}&lt;br /&gt;
 		System.out.print(max);&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
삼항연산자를 써서 풀어봤다.&lt;br /&gt;
&lt;br /&gt;
= 4주차 수업 회고 =&lt;br /&gt;
생성자를 오버로딩할 때 겹치는 코드를 줄이기 위해서 다른 생성자를 끌어다 사용한다는 점이 인상적이었다.&lt;br /&gt;
&lt;br /&gt;
자바에서도 매개변수에 디폴트값을 넣는 게 가능한지 궁금했는데, 물론 그냥 필드를 선언할 때 값을 지정해주면 그만이다.&lt;br /&gt;
근데 자바나 C에선 new function()으로 함수를 생성할 때 매개변수의 입력 경우의 수에 따라 함수를 재정의해주어야 한다.&lt;br /&gt;
C에서는&lt;br /&gt;
 void Function(char param1, int param2, double param3=9.8);&lt;br /&gt;
같은 형태로 매개변수에 디폴트값을 넣어 하나의 함수로도 매개변수가 2개, 3개일 때 동시에 사용할 수 있다.&lt;br /&gt;
이런 형태가 java 클래스의 생성자에서도 쓰일 수 있는지 시험해봐야겠다.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 // student.java&lt;br /&gt;
 package QW;&lt;br /&gt;
 public class Student {&lt;br /&gt;
 	String department = &amp;quot;소프트웨어학부&amp;quot;;&lt;br /&gt;
 	String gender = &amp;quot;female&amp;quot;;&lt;br /&gt;
 	int studentId = 21;&lt;br /&gt;
 	&lt;br /&gt;
 	Student(){&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // test.java&lt;br /&gt;
 package QW;&lt;br /&gt;
 &lt;br /&gt;
 public class Test {&lt;br /&gt;
 	public static void main(String[] args) {&lt;br /&gt;
 		Student student = new Student();&lt;br /&gt;
 		System.out.println(student.department);&lt;br /&gt;
 		System.out.println(student.studentId);&lt;br /&gt;
 		System.out.println(student.gender);&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 #2&lt;br /&gt;
 &lt;br /&gt;
 //test.java&lt;br /&gt;
 package QW;&lt;br /&gt;
 import java.util.Scanner;&lt;br /&gt;
 &lt;br /&gt;
 public class Test {&lt;br /&gt;
 	public static void main(String[] args) {&lt;br /&gt;
 		String department, gender;&lt;br /&gt;
 		int studentId;&lt;br /&gt;
 		&lt;br /&gt;
 		Scanner sc = new Scanner(System.in);&lt;br /&gt;
 		System.out.println(&amp;quot;학부: &amp;quot;);&lt;br /&gt;
 		department = sc.next();&lt;br /&gt;
 		System.out.println(&amp;quot;학번: &amp;quot;);&lt;br /&gt;
 		studentId = sc.nextInt();&lt;br /&gt;
 		System.out.println(&amp;quot;성별: &amp;quot;);&lt;br /&gt;
 		gender = sc.next();&lt;br /&gt;
 		&lt;br /&gt;
 		Student student = new Student(department, studentId, gender);&lt;br /&gt;
 		System.out.println(student.department);&lt;br /&gt;
 		System.out.println(student.studentId);&lt;br /&gt;
 		System.out.println(student.gender);&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 //student.java&lt;br /&gt;
 package QW;&lt;br /&gt;
 public class Student {&lt;br /&gt;
 	String department, gender;&lt;br /&gt;
 	int studentId;&lt;br /&gt;
 	&lt;br /&gt;
 	Student(String department, int studentId, String gender){&lt;br /&gt;
 		this.department = department;&lt;br /&gt;
 		this.gender = gender;&lt;br /&gt;
 		this.studentId = studentId;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
== 댓글 ==&lt;br /&gt;
* https://bluesid.tistory.com/251 도움이 될 만한 링크인 것 같아요 - [[김은솔]]&lt;br /&gt;
&lt;br /&gt;
= 5주차 수업 회고 =&lt;br /&gt;
저번 시간에 생성자에 대해 배웠다면 이번엔 필드, 변수, 매소드에 대해 배웠다.&lt;br /&gt;
형태만 다르지 c++이나 파이썬과 코드의 흐름은 비슷해서 배우기 어렵지 않았다.&lt;br /&gt;
다만 ststic final 으로 상수를 선언하는 게 신기했다. c에서도 const 등으로 상수를 선언하긴 하지만, 그것보단 #define으로 선언하는 게 더 익숙해져서인지 새삼스러웠다. #define은 변수를 생성한다기보단 그냥 PI라는 이름이 나오면 3.14로 치환해주는 함수같은 형태라면 const와 final은 변수의 형태이지만 여러 제약을 통해 상수로서 역할하는 것이다. 이 둘 사이에도 차이가 있다고 하는데 c++ 이론도 완벽하진 않아서 둘의 차이를 공부하긴 힘들 것 같다. 그래도 새싹톤 참가 전엔 약간이라도 알아보는 게 도움이 될 듯하다.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;필수&amp;amp;gt;&lt;br /&gt;
 - 사칙연산이 가능해야 한다.&lt;br /&gt;
 - 3.14의 값을 갖는 pi를 정적 변수로 선언한다.&lt;br /&gt;
 - 나눗셈의 매개 변수는 int, double 두 개로 선언한다.&lt;br /&gt;
 - 계산기 변수가 몇 번 만들어졌는지 확인할 수 있는 정적 필드 calculatorSetCount를 만들어야 한다. (계산기가 생성될 때마다 setCount의 숫자를 증가시킨다.)&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;Calculator class&amp;amp;gt;&lt;br /&gt;
 - 사칙연산 메소드&lt;br /&gt;
 - 정적 필드 pi&lt;br /&gt;
 - circleArea 메소드 : &lt;br /&gt;
 원의 넓이를 구하는 메소드. pi를 사용해야 한다. 반지름을 하나 입력받는다. 매개 변수의 타입은 int로 한다.&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;TestMain class&amp;amp;gt;&lt;br /&gt;
 - 계산기 변수를 선언하고 덧셈, 나눗셈을 수행한 후 값을 출력한다.&lt;br /&gt;
 - 새로운 계산기 변수를 선언하고 원의 넓이를 계산하고 출력한다.&lt;br /&gt;
 - calculatorSetCount를 출력한다.&lt;br /&gt;
&lt;br /&gt;
 //Calculator.java&lt;br /&gt;
 package practice;&lt;br /&gt;
 &lt;br /&gt;
 public class Calculator {&lt;br /&gt;
 	static final double PI = 3.14;&lt;br /&gt;
 	static int calculatorSetCount = 0;&lt;br /&gt;
 	&lt;br /&gt;
 	Calculator(){&lt;br /&gt;
 		calculatorSetCount++;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	int addition(int x, int y) {&lt;br /&gt;
 		int result = x+y;&lt;br /&gt;
 		return result;&lt;br /&gt;
 	}&lt;br /&gt;
 	int subtraction(int  x, int y) {&lt;br /&gt;
 		int result = x-y;&lt;br /&gt;
 		return result;&lt;br /&gt;
 	}&lt;br /&gt;
 	int multiplication(int x, int y) {&lt;br /&gt;
 		int result = x*y;&lt;br /&gt;
 		return result;&lt;br /&gt;
 	}&lt;br /&gt;
 	int division(int x, int y) {&lt;br /&gt;
 		int result = x/y;&lt;br /&gt;
 		return result;&lt;br /&gt;
 	}&lt;br /&gt;
 	double division(double x, double y) {&lt;br /&gt;
 		double result = x/y;&lt;br /&gt;
 		return result;&lt;br /&gt;
 	}&lt;br /&gt;
 	double circleArea(int x) {&lt;br /&gt;
 		double result = PI*x*x;&lt;br /&gt;
 		return result;&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 //TestMain.java&lt;br /&gt;
 package practice;&lt;br /&gt;
 &lt;br /&gt;
 import java.util.Scanner;&lt;br /&gt;
 &lt;br /&gt;
 public class TestMain {&lt;br /&gt;
 	public static void main(String[] args) {&lt;br /&gt;
 		Scanner sc = new Scanner(System.in);&lt;br /&gt;
 		&lt;br /&gt;
 		Calculator cal_1 = new Calculator();&lt;br /&gt;
 		int additionInt = cal_1.addition(10, 20);&lt;br /&gt;
 		System.out.println(additionInt);&lt;br /&gt;
 		int divisionInt = cal_1.division(30, 20);&lt;br /&gt;
 		System.out.println(divisionInt);&lt;br /&gt;
 		double divisionDouble = cal_1.division(5.0, 2.3);&lt;br /&gt;
 		System.out.println(divisionDouble);&lt;br /&gt;
 &lt;br /&gt;
 		Calculator cal_2 = new Calculator();&lt;br /&gt;
 		System.out.println(&amp;quot;반지름을 입력하세요: &amp;quot;);&lt;br /&gt;
 		int radius = sc.nextInt();&lt;br /&gt;
 		&lt;br /&gt;
 		double circleArea = cal_2.circleArea(radius);&lt;br /&gt;
 		System.out.println(circleArea);&lt;br /&gt;
 		&lt;br /&gt;
 		System.out.println(Calculator.calculatorSetCount);&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
이렇게 써놓고 보니 TestMain.java에서 &lt;br /&gt;
 Calculator.calculatorSetCount+=1;&lt;br /&gt;
으로 {{{calculatorSetCount}}}에 접근이 가능한 것 같아서 별로이다. 이런 코드보단, {{{private static int calculatorSetCount = 0;}}}으로 {{{calculatorSetCount}}}에 접근이 불가능하도록 해놓고, {{{static int getCalculatorSetCount() {&lt;br /&gt;
		return calculatorSetCount;&lt;br /&gt;
	}&lt;br /&gt;
}}} 같은 형식으로 getter 함수를 만들어주는 게 더 명확한 것 같다. 그리고 다음부턴 매소드나 필드 모두에 private이든 public이든 써주어야 헷갈리지 않을 것 같다. 그러기 위해선 접근 지정자에 대해 더 공부해야할 것 같은데, 이것도 시험 끝나면 한번 정리해봐야겠다.&lt;br /&gt;
&lt;br /&gt;
= 6주차 수업 회고 =&lt;br /&gt;
&#039;상속&#039; 하나만 배웠는데도, 다른 시간보다 배운 게 더 많은 것 같다.&lt;br /&gt;
&lt;br /&gt;
* 실습&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;Fruit class&amp;amp;gt;&lt;br /&gt;
 - String name, String color, String flavor&lt;br /&gt;
 - 생성자는 같은 패키지와 자식에서만 쓸 수 있도록 선언&lt;br /&gt;
 - 생성자의 입력은 name, color, flavor 3개가 동시에 들어온다.&lt;br /&gt;
 - name, color, flavor를 출력하는 메소드 print를 선언&lt;br /&gt;
 - 메소드는 public으로 선언&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;Apple class&amp;amp;gt;&lt;br /&gt;
 - color는 red로 고정&lt;br /&gt;
 - print를 오버라이딩해서 color가 red인 경우 This is Apple을 출력하도록 할 것. 그 이외에는 Fruit의 print를 호출할 것&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;lt;Test class&amp;amp;gt;&lt;br /&gt;
 - Fruit을 선언하고, 임의의 값 (name, color, flavor 3개를 넣을 것, 단 color는 red가 아닌 다른 값을 넣는다) 을 넣어 초기화한다.&lt;br /&gt;
 - Apple을 선언하고, 임의의 값 (color 제외하고 2개를 넣을 것)을 넣어 초기화한다.&lt;br /&gt;
 - 각각 Fruit 과 Apple의 print를 호출한다.&lt;br /&gt;
수업 당시 실습 전에 강의실을 나와버려서 코드 확인은 받지 못했다.&lt;br /&gt;
 	private String color = &amp;quot;red&amp;quot;;&lt;br /&gt;
 	public Apple(String name, String flavor){&lt;br /&gt;
 		super(name, this.color, flavor);&lt;br /&gt;
 	}&lt;br /&gt;
처음 Fruit 클래스의 코드를 이렇게 썼을 때 &lt;br /&gt;
: &amp;quot;Cannot refer to &#039;this&#039; nor &#039;super&#039; while explicitly invoking a constructor&amp;quot;&lt;br /&gt;
&lt;br /&gt;
라는 오류메세지가 떴다. 생성자를 호출할 때는 this와 super를 통한 참조가 불가능하다고 하는 것 같은데, 또 생성자 호출은 생성자에서 첫 번째 줄의 코드에 나와야 해서 &lt;br /&gt;
 	private String color = &amp;quot;red&amp;quot;;&lt;br /&gt;
 	public Apple(String name, String flavor){&lt;br /&gt;
 		String color = this.color;&lt;br /&gt;
 		super(name, color, flavor);&lt;br /&gt;
 	}&lt;br /&gt;
같은 형태도 불가능하다.&lt;br /&gt;
그래서 &lt;br /&gt;
 	public Apple(String name, String flavor){&lt;br /&gt;
 		super(name, &amp;quot;red&amp;quot;, flavor);&lt;br /&gt;
 	}&lt;br /&gt;
로 일단 짜긴 했는데 더 좋은 방법이 있을지 궁금하다. 이건 좀 난잡한 코드인 것 같다.&lt;br /&gt;
&lt;br /&gt;
=Q=&lt;br /&gt;
제 이름으로 된 새로운 페이지를 만들고 싶어서 https://wiki.zeropage.org/wiki.php/%EC%83%88%ED%8E%98%EC%9D%B4%EC%A7%80%EB%A7%8C%EB%93%A4%EA%B8%B0&lt;br /&gt;
을 참고해서 Go에 제 이름을 쳤는데, 자꾸 이 링크로 접속이 되네요. 이건 어떻게 해결해야 할까요? 이 페이지를 삭제하고 제 페이지를 만들고 다시 이 페이지를 복구해야 할까요?&lt;br /&gt;
그리고 정모 링크가 올라오는 사이트가 혹시 따로 있나요?&lt;br /&gt;
감사합니다.&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>211.108.138.214</name></author>
	</entry>
</feed>