JAVA week9.1
2025.04.29 Tue AM 10:02 ・ 81Minutes 21seconds
ZHANG YIWEN
JAVA 第 9 周第 1 课 2025 年 04 月 29 日 周二 上午 10:02 · 81 分 21 秒 张易文
Attendees 1 00:00
진명훈
参会人员 1 00:00 진명훈
Attendees 1 00:06
성시연
参会人员 1 00:06 성시연
Attendees 1 00:13
네 5분 뒤부터는 지각 처리하겠습니다. 우리 지금 자바 스윙을 하려고 오늘부터 자바 스윙을 하려고 했더니 여기 우리 첫 시간에 자바 홈 환경 변수 편집이 안 됐잖아요.
그래서 관리자 모드로 그걸 해 주셔야지 우리가 수업을 할 수 있어요.
그래서 지금 조교한테 문의를 해놔서 목요일부터 가능할 것 같고 오늘은 이론 수업만 해야 될 것 같고 그래서 수업을 안 할 수는 없어서 시험을 측정을 해본 결과 클래스에 대한 이해는 했는데 클래스와 메소드에서 사용하는 위치라든지 사용 방법 객체 클래스 객체의 배열도 조금 미흡한 사람이 좀 있었고 그다음에 내가 봤을 때 객체 배열이 안 된다면 상속은 좀 쉬운 편이긴 하지만 상속도 좀 어려워할 것 같다는 생각이 들어요.
그래 상속이 돼야 그다음에 그 상속에 대한 개념을 가지고 스윙을 할 수 있는데 오늘은 상속을 조금 보강해서 수업을 더 하는 게 좋겠다는 판단이 들었어요.
参与者 1 00:13 好的,5 分钟后开始处理迟到。我们本来想从今天开始学习 Java Swing,但是在我们第一堂课上 Java 家目录环境变量无法编辑。所以需要以管理员模式处理,这样我们才能上课。现在已经向助教咨询,估计从周四开始可以进行,今天只能进行理论课。因为不能不上课,经过测试发现,学生对类的理解已经掌握,但在类和方法的使用位置、使用方法、对象类、对象数组等方面还有一些不足。另外,我觉得如果对象数组还没有掌握,那么继承虽然相对简单,但可能也会感到有些困难。只有理解了继承,才能进一步学习 Swing,所以我认为今天应该加强继承部分的课程。
Attendees 1 01:24
어차피 스윙이 안 되기 때문에 그래서 상속 조금 더 하고 스윙 이론 수업만 하고 목요일부터 이제 스윙을 한번 해보도록 할게요.
그래서 우리 제가 교환은 9장은 올려놓긴 했지만 9장을 할 수가 없는 상태고 5장을 조금 한 번 더 앞부분만 좀 필요한 것만 좀 하시고 나머지 뒷부분은 여러분이 각자 공부를 하시면 될 것 같고 그래서 상속을 조금 다시 한 번 상기시키면서 설명을 좀 하면서 할게요.
상속은 우리가 기존에 가지고 있던 자바에 만들어져 있는 패키지와 클래스들을 다시 우리가 재사용을 할 수가 있는 거죠.
이거 더 이상 이제 설명 안 해도 되죠. 그래서 상속을 하는 방식에는 익스텐즈를 사용하시면 되고 위에서부터 계속 설정을 환경에 대한 뭐야 클래스를 객체를 생성을 해서 호출하는 방법까지 알려드렸어요.
순서까지 그래서 객체 지향을 위에 상속을 제일 위에 있는 걸 슈퍼라고 하고 부모라고 하고 그 밑에 상속을 받는 걸 자식 서브라고 합니다.
参与者 1 01:24 反正 Swing 无法进行,所以我们将多讲一些继承,并进行 Swing 理论课,从周四开始实践 Swing。我虽然已经上传了第 9 章,但目前无法进行第 9 章的学习。我们将简单讲解第 5 章前面部分的必要内容,其余部分请大家自行学习。我将通过重新回顾继承来进行说明。继承使我们能够重用 Java 中已存在的包和类。关于这点,我想不用多做解释。继承的方式是使用 extends,我已经向大家介绍了从上至下如何设置环境,如何创建对象和调用对象的方法。在面向对象中,最顶层的称为超类或父类,下面继承的称为子类或子类。
Attendees 1 02:28
그래서 상속에 대한 기존에 예를 들어 이제 여러분들이 클래스를 만들 줄 알잖아요.
그쵸? 만들어서 각자 그 필드와 메소드와 생성자로 구성되어 있는 클래스를 만들어 놓고 그 관계를 다시 재설정하지 않고 부모 거를 가지고 와서 상속을 받아서 필요한 것만 더 추가해서 만들 수 있는 과정들을 여러분들이 이미 배우셨고 그리고 그 정도는 만들 수 있을 거라고 생각합니다.
예를 들어 펄슨이라는 클래스를 만들어 놓고 클래스를 상속을 받고자 할 때는 익스텐지 펄스를 하시면 되고 펄스를 다시 한 번 재사용하기 위해서 스튜던트를 만들어 놓으면 이 스튜던트는 추가되어 있는 항목이 같이 돼서 다시 익스텐지에서 스튜던츠 월커를 만들어내는 과정들을 봤어요.
因此,关于继承,例如,现在你们已经知道如何创建类了,对吧?创建具有字段、方法和构造函数的类,然后不重新设置关系,而是继承父类,并只添加必要的内容。你们已经学习了这个过程,我认为你们能够做到。例如,创建一个 Person 类,当你想继承这个类时,可以使用 extends Person,然后为了重用 Person,创建一个 Student 类,这个 Student 类会包含额外的项目,并可以在 extends 中创建 Students Walker。
Attendees 1 03:18
이렇게 상속이 이루어지는데 우리가 여기서 부모 클래스를 슈퍼 클래스라고 하고 그리고 부모 클래스에 있는 내용들을 무엇인가 가지고 오거나 설정을 할 때 우리 어떤 키워드를 썼어요?
슈퍼라고 썼어요. 우리 이거 아마 기억이 날 거 하면 기억이 날 거라고 생각합니다.
먼저 포인트라는 클래스를 하나 만들어 놓고 우리 이거 만들기 전에 여기서도 조금 문제를 풀다 보니까 여러분들이 헷갈려 하는 게 있는데요.
우리가 메인 클래스는 여러 개가 존재하면 안 돼요.
그쵸? 만약에 클레이 이런 경우가 있었어요. 이걸 감점을 줘야 되나 말아야 되나 그때 되게 나도 고민을 많이 했는데 여러 번 말했는데 패키지가 패키지 1이 있고 패키지 2가 있어요.
근데 여기도 메인이 있고 여기도 메인이 있으면 돼요.
안 돼요. 하나만 있어야 돼요.
继承就是这样进行的,在这里我们称父类为超类(Super Class),当我们获取或设置父类中的内容时,我们使用什么关键字?我们使用了 super 关键字。如果你们记得,应该还记得这一点。首先创建一个 Point 类,在此之前,在解决问题时,有些问题让你们感到困惑。我们不能有多个主类,对吗?例如,之前有个案例。当时我很纠结是否要扣分,因为我已经多次强调,如果有包 1 和包 2,这两个包中都有主类是不行的。只能有一个主类。
Attendees 1 04:13
프로젝트가 구현이 되려면 그래서 하나만 존재를 해야 되고 내가 예를 들어 이 페이 패키지 2에 있는 거를 메인으로 쓰겠다 하면 이제 여기에 클래스를 생성하잖아 클래스를 생성하잖아요.
그래서 얘를 들어 여기가 e1이라고 하고 얘가 e2라는 클래스를 만들었어요.
얘는 패키지 p1 p2는 패키지라고 보면 여기에서 21이라는 클래스를 만들면 어떻게 생겨요?
요 앞에 뭐가 붙죠? 클래스가 붙어요. 클래스가 붙어.
그리고 이렇게 생겼죠 아무것도 없어 그냥 이렇게 생겼어.
그리고 여기서는 패키지 p1 이렇게 써 있겠지 이게 끝 두 번째 패키지에다가 내가 e2라는 클래스를 만들었어.
어떻게 생겼어 얘도 패키지 뭐가 있고 p2 이렇게 쓰여 있고 여기도 뭐가 있어요?
e2 앞에 클래스가 있어요. 클래스가 있어. 그런데 이제 클래스와 클래스 간에 우리가 메소드를 사용하기 위해서 적금 지정자가 있죠.
적금 지정자. 근데 이제 2원이 e2가 이제 메인으로 내가 쓸 거야.
그러면 이 e2에는 메인이 있어.
要让项目实现,就必须只存在一个,比如说我想在包 2 中使用它作为主要内容,那么就会在这里创建一个类。假设我创建了 e1 和 e2 两个类。p1 和 p2 是包,如果在这里创建了 21 类,它会是什么样子?前面会加什么?会加上类。就是这样,什么都没有,就是这个样子。在 p1 包中会这样写,这就结束了。在第二个包中,我创建了 e2 类。它也会有包,写着 p2,前面也会有什么?e2 前面会有类。但是现在为了在类和类之间使用方法,就需要访问修饰符。如果 e2 现在是主要使用的,那么 e2 中会有主方法。
Attendees 1 05:26
그럼 메인이 퍼블릭 스텝티 보이드 이렇게 써 있죠.
메인이 이제 이렇게 메소드로 들어 있는 거야. 보이드니까 괄호가 있는 거고 클래스니까 없는 거고 그래서 근데 얘는 전체적으로 다 이제 공용으로 써야 되니까 여기에 퍼블릭 더.
근데 얘가 얘를 접근하고 싶어요. 이렇게 그럼 얘는 뭐가 붙어?
퍼블릭이 붙는 거야 내가 여기다가 클래스를 하나 다시 e3를 만들었어.
얘 퍼블릿 붙어야 돼요. 붙어도 되고 안 붙어도 돼요.
근데 내가 불러올 수 있어 같이 들어 있기 때문에 여기는 이거 만약에 없으면 못 불러와 공룡이 아니기 때문에 그래서 얘가 공룡이 되게 하려고 피를 퍼블릭을 붙여준 거예요.
그러면 우리가 이제 메소드를 여기다가 메인이 여기에 하나 있어.
클래스도 여기 이렇게 이제 제가 대체적으로 여러분에게도 좀 설명을 좀 많이 드리는 게 이렇게 우리가 이렇게 괄호가 쳐져 있잖아요.
이건 따지고 볼 때 약간 박스라고 생각하면 조금 더 쉽게 접근할 수 있거든요.
那么主方法会写成 public static void 这样。主方法现在作为方法在里面。因为是 void,所以有括号,因为是类所以没有。但是因为需要全局使用,所以这里会加 public。如果它想访问这个,那么它会怎么办?会加 public。我再创建了一个 e3 类。这里需要加 public,可以加也可以不加。但是如果没有,就无法调用,因为它不是恐龙。所以为了让它成为恐龙,我加了 public。那么我们现在在这里有一个主方法。类也在这里。我向大家解释的大致就是这样。当我们有这样的括号时,可以把它想象成一个盒子,这样会更容易理解。
Attendees 1 06:31
그런데 이 박스가 제대로 안 쳐져 있으면 박스가 이렇게 막 중구난방으로 이렇게 겹쳐지게 쳐져 있으면 여러분들이 중간에 막 뭐야 어떤 사람은 여기다가 스캐너를 넣은 사람도 있어요.
그러니까 그러니까 이게 괄호를 박스라고 생각하고 박스가 겹쳐지지 않게 잘 설정해 주기 위해서 이 줄을 맞춰서 이렇게 설정을 해주면 돼요.
잘 모르겠으면 이제 저 같은 경우는 이거를 이렇게 하나의 네모라고 생각을 하고 처리를 합니다.
그래서 중간에 이런 사이에다가 다른 거를 그냥 인츠 뭐 이런 거 어쨌든 저녁 변수로 쓸 수도 있겠지만 이렇게 중간에 덩그러니 뭐가 혼자 있지 않게 해주세요.
이해가 갔어요. 덩그러니 혼자 여기다가 시스템 이런 거 넣으면 안 된다고 시스템 자아 이런 거 덩그러니 혼자 있게 내비두지 말라고 여기 괄호 안에 들어가게끔 뭔가 함수 안에 들어가게 처리를 해달라는 거예요.
그래서 어쨌든 그래서 메인이 있어.
如果这个框没有正确地画出来,框会像这样凌乱地重叠。有些人甚至在这里放了扫描仪。所以,为了避免框重叠,要对齐这些线并进行设置。如果不确定,我会把它看作一个矩形并这样处理。不要让中间某个变量孤零零地存在。明白了吗?不要单独放置系统变量之类的东西,要确保它们在括号或函数内部。总之,主程序是存在的。
Attendees 1 07:34
그러면 내가 예를 들어서 이제 5번 문제의 경우는 퍼슨이라는 클래스를 만들려고 하는 문제가 있었잖아요.
그럼 퍼스니의 클래스는 1번 위치, 2번 위치, 3번 위치, 4번 위치 중에 어디에 있어야 돼요?
요 펄슨이라는 내가 5번 문제를 냈잖아 클래스를 만들래?
클래스를 만들려면 5번 문제 있었잖아요. 그쵸?
그럼 내가 메인에서 이 5번 문제를 처리를 할 건데 클래스를 일단 생성을 하래 1번 2번 3번 4번 중에 어디에 들어 있어야 돼?
클래스 어디다 만들어
比如说,在第 5 题中,我要创建一个 Person 类。那么这个 Person 类应该位于 1 号、2 号、3 号、4 号位置中的哪个位置?我出了第 5 题,要创建这个类。在主程序中我要处理这个第 5 题,首先要创建这个类。那么它应该放在哪里?类应该放在哪里?
Attendees 1 08:19
다 할 수 있어요? 몇 개 답 딱 하나만 있는 게 아니야 1번 가능해요 가능해요.
2번 가능해요. 가능해요. 3번 가능해요. 안 돼요.
근데 여기다가 쓰는 사람 되게 많아. 5번 문제라고 보이드 안에다가 클래스를 만들어서 만든 사람이 되게 많아요.
4번 가능해요. 가능해요. 근데 여기다만 안 쓰면 되는데 얘를 펄슨을 여기다가 안타깝게 얘를 대체해서 만들라는 문제였었는데 그래서 아무튼 뭐 그거는 나름대로 점수를 잘 줬어요.
근데 어쨌든 그렇게 여기다가 펄슨을 만들어 놓고 이 펄슨을 여기서 객체를 호출하라는 거야.
예를 들어서 내가 이 e e3가 아니라 여기다 펄슨이라고 만들었어.
펄슨 그러면 여기서 이제 이 펄슨 클래스를 가지고 여기서 만들 때는 펄스 p는 뉴 펄슨 이렇게 만들라는 거였지.
이렇게 한 개짜리면 이렇게 만들고 배열이면 배열로 만들고 이해 갔죠.
参会人员 1 08:19 都能做到吗?不只是一个答案。1 号可以。可以。2 号可以。可以。3 号可以。不行。但是这里写的人很多。5 号问题看起来在 void 里创建类的人很多。4 号可以。可以。但是只要不在这里写就可以,本来是要用这个人来替代这个。无论如何,这个得分还不错。不管怎样,创建了 Person 并在这里调用对象。例如,我不是 e e3,而是在这里创建了 Person。Person,那么在这里使用这个 Person 类创建时,Person p = new Person,就是这样。如果是一个就这样创建,如果是数组就用数组创建,明白了吗?
Attendees 1 09:22
그래서 클래스는 여기 있어야 되고 호출은 여기 메인에서 하는 거야.
이거. 근데 co노랑 똑같아요. 함수 메소드랑 똑같은 방법이라고 생각하면 돼.
그냥 클래스로 대체가 바뀌었을 뿐이지. 그래서 이게 이렇게 돼서 처리가 되는 거고 우리가 지금 이 문제를 봤을 때도 메인이라는 함수가 어디에 들어 있냐면 여기 클래스 요거 요거를 한 패키지라고 보니까 이제 이거를 가정하지 말고 여기 안에서 이 문제를 풀 거예요.
그럼 이제 내가 패키지 2에다가 e2라는 클래스를 만들어 놓고 메인은 여기 들어 있는 거고 내가 새로운 생성할 수 있는 패키지 클래스는 위에다가 붙이던지 밑에다가 붙이든지 상관없지만 함수 안에 넣지만 않으면 돼.
그러면 위에 1번하고 2번 위치에 있다 이거야. 그러면 보니까 클래스에 4인이 있고 그다음에 여기 클래스 컬러 포인이 있고 그다음에 여기 클래스를 보니까 퍼블릭이 되어 있네.
그리고 여기에 메인이 들어 있네.
参会人员 1 09:22 所以类应该在这里,调用在主方法中。这个。但是和 co 是一样的。可以认为和函数方法是一样的方法。只是类被替换了。所以就这样处理。当我们看这个问题时,主方法在哪里?在这个类,这个包。现在要在这里解决这个问题。那么我会在包 2 中创建 e2 类,主方法在这里,我可以在上面或下面创建新的类,只要不放在函数里就可以。那么就是在 1 号和 2 号位置。看起来有 4 个类,然后这里有一个 Color Point 类,然后这里的类是公共的。主方法在这里。
Attendees 1 10:24
그럼 얘가 주가 되는 거야. 그러면 여기서 요 3개를 보고 클래스 3개를 보고 이 클래스 자바 파일은 이름이 뭐야?
내가 여러 번 말하긴 했는데 이것만 딱 보고 이 파일의 이름은 뭐라고 추정이 돼요 네 칼라 포인트 ex 자바예요.
그러면 여기 이거의 소스로 봤을 때는 패키지 이름은 모르겠지만 맨 윗줄에 패키지 뭐라고 써 있겠지.
그러면 이 파일의 이름은 컬러 포인트 ex 자바예요.
그러면 그 자바 안에 그러면 그 클래스 안에 메인이 들어 있는 거야.
그럼 나머지 것들은 그냥 덩그러니 위에 붙어 있는 거 위에 붙을 수도 있고 밑에 붙을 수도 있어.
구동은 다 되니까 그러면 메인이 여기 있어. 그러면 이제 메인의 특징은 퍼블릭 스탠트 보이드를 써줘야 된다는 적금자를 우리가 배웠단 말이에요.
4장에서 좋아.
出席者 1 10:24 那么这个将成为主要的。那么在这里查看这 3 个类,这个 Java 文件的名称是什么?我已经多次说过,只看这个就能推测出这个文件的名称是颜色点 EX.java。那么从这里的源代码来看,虽然不知道包名,但在最上面一行会写包名。那么这个文件的名称就是颜色点 EX.java。那么在那个 Java 文件中,主方法就在那个类里面。其他的部分可能在上面或下面附着。因为都可以运行。那么主方法在这里。那么现在主方法的特点是我们在第 4 章学习了需要使用 public static void。好的。
Attendees 1 11:21
그러면 내가 포인트 이게 똑같이 얘도 클래스고 얘도 클래스고 얘도 클래스 지 얘가 컬러 포인트 ex 자바일 거라고 가정할 수 있는 건 여기 퍼블릭 클래스라고 붙었기 때문이야 이해 가죠.
그럼 나머지 애들은 퍼블릭이 붙을 수도 있고 안 붙을 수도 있어요.
만약에 붙는다면 다른 패킷에서 쓰도록 허용을 했다는 거니까.
근데 붙지 않았으면 내 패키지 안에서는 자유롭게 쓸 수 있다는 얘기야.
이해 갔죠. 그러면 이제 이렇게 생겼어. 그러면 내가 위에 포인트와 포인트를 상속받은 칼라 포인트라는 두 개의 클래스를 만들어 고 내가 포인트를 만들었네.
그럼 내가 피라는 포인트 p는 뉴 포인트 원래 한 개짜리는 생성자 바로 류 할 수 있어요.
만약에 배열이면 이게 배열로 처리가 돼야 되고요.
지금 하나짜리는 그냥 생성자 바로 호출했습니다.
그럼 이렇게 생성 그러면 얘가 객체가 생성된 인스턴스가 되는 거야.
그럼 얘 피라는 아이는 필드가 뭐가 있습니까? 필드 뭐 있어요?
出席者 1 11:21 那么我假设这个也是类,那个也是类,这个也是类,因为这里标注了 public class,所以这可能是颜色点 EX.java。明白了吗?那么其他的类可能会也可能不会有 public 标注。如果有 public 标注,那就意味着允许在其他包中使用。如果没有,那就表示在自己的包内可以自由使用。明白了吗?那么它看起来是这样的。那么我创建了两个类:继承自 Point 的 ColorPoint。那么我创建了一个 Point。那么我可以直接使用只有一个参数的构造函数创建 p。如果是数组,那么它将被作为数组处理。现在对于单个对象,我直接调用了构造函数。那么这样创建后,它就成为了一个实例对象。那么这个 p 有什么字段?有什么字段?
Attendees 1 12:30
물어볼까 이거 이해하고 있어 내 말 지금 이해하고 있죠 그럼 한 명씩 물어봐야겠다.
参会者 1 12:30 要不要问一下,你是否理解?我现在正在理解你的话。那么,我们一个一个地问。
Attendees 1 12:42
한성빈 이고 이거 이쪽에다 옮겨놓고 성빈아 성빈이가 봤을 때 포인트 p 뉴 포인트라는 객체를 만들었어.
그럼 얘는 필드가 몇 개 있을까? 한성빈 어디 있어?
필드가 몇 개 있을까?
参会者 1 12:42 韩成彬,把这个移到这边。成彬啊,当成彬看到这个时,创建了一个点 p 新点对象。那么,它有多少个字段?韩成彬在哪里?有多少个字段?
Attendees 1 13:07
2개 뭐하고 뭐지?
参加者 1 13:07 2 个是做什么的?
Attendees 1 13:14
어 x하고 와야 잘했어 그리고 띄엄띄엄 물어봐야겠다.
이시훈 시윤아 시윤이가 봤을 때 여기서 메소드는 뭘까?
参加者 1 13:14 哦,x 一起来就做得很好,然后间隔着问。当石勋、诗允看到时,这里的方法是什么?
Attendees 2 13:37
셋 컷
与会者 2 13:37 三切
Attendees 1 13:39
아니 여기 포인트에 잠깐 쇼 포인트 쇼어 포인트야 왜 근데 이거 왜 메소드인지 어떻게 알았을까 보이드 때문에 그리고 보이드가 있으면 괄호가 있어야 되니까 그럼 여기다 메소드는 한 개만 쓸 수 있어.
여러 개 쓸 수 있어요. 여러 개 써가지고 여러분들 ex 12 3를 만든 거죠.
이런 식으로 그러면 성시연 시연이가 봤을 때 여기는 생성자가 뭘까?
생성자 이름은 뭘까? 여기서 포인트에서 기본 생성자 근데 여기에 있어 없어 없어요.
기본 상자 없으면 이거 에러 나야 될 것 같은데 에러 나 안 나요 왜 기본적으로 생성자가 없으면 기본 생성자는 자동으로 만들어주기 때문에 그러면 뭔지 모르겠지만 변수 x y를 만들어 놨을 거야.
그럼 셋은 셋은 이재현 재현이가 봤을 때 셋이라는 거는 어떤 뭐라고 명칭을 부르면 좋을까?
与会者 1 13:39 哎,这里的关键点稍微展示一下关键点,为什么这是一个方法?为什么知道它是方法?因为有 void,而且有 void 就必须要有括号。那么在这里一个方法只能写一个吗?不,可以写多个。像这样写多个,就像你们创建的 ex 12 3 一样。那么如果成时연看到这里,构造函数是什么?构造函数的名字是什么?这里 Point 的默认构造函数,但是这里有没有?没有。如果没有默认构造函数,看起来应该会报错,但是不会报错。为什么?因为如果没有构造函数,默认构造函数会自动创建。那么可能会创建未知的 x y 变量。那么 Set,从李在现的角度来看,Set 应该如何命名呢?
Attendees 1 14:57
필드 생성자 메소드 요 세 개 중에 하나일 것 같아. 셋은 메소드야 그치 뭐 보고 알았어 아니야 보이드 때문에 알았어.
보이기 때문에 보이드 때문에 얘는 생성자 메소드구나.
그럼 얘는 생성자가 없는 상태지만 필드 그다음에 메소드 2개로 구성되어 있는 포인트야.
그러면 내가 포인트 해서 만들어서 셋 p 셋 했단 말이에요.
p셋은 p 셋은 p 셋은 뭘 호출한 거죠? 필드 생성자 메소드 중에 메소드를 생성 호출한 거예요.
그래서 만약에 이렇게 하면 이렇게 하면 포인트 하면 생성자를 호출한 거고 p 셋 하면 이거는 메소드를 호출한 거예요.
근데 인자가 2개가 있네. 왜? 메소드 셀 세대 메소드 매개 변수 몇 개 받았어?
2개 받았기 때문에 뭐 어떤 걸로 정수 2개로 그래서 받은 거예요.
그래서 얘랑 얘랑 얘는 생성자인 거고 얘 p 점 얘는 메소드를 호출한 거예요.
与会者 1 14:57 字段、构造函数和方法可能是这三个中的一个。它们都是方法,对吧?看了就知道了。因为有 void,所以知道了。因为可见,所以因为 void,它是一个构造函数方法。那么,这个没有构造函数,但由字段和两个方法组成。那么,我指出了要创建的点,我说了设置点 p。p 设置是指什么?它调用了字段、构造函数和方法中的方法。所以,如果这样做,点击时,这是调用了构造函数;如果是 p 设置,这是调用了方法。但有两个参数,为什么?方法的第二代方法接收了几个参数?因为接收了 2 个,所以是用两个整数接收的。所以,这个是构造函数,p 点这个是调用了方法。
Attendees 1 16:05
이해갔죠 그래서 이제 또 p 쇼어 포인트 얘는 뭘 또 호출한 거야 메소드를 호출한 거야.
근데 얘 역할은 뭐야? 그냥 보여달라는 거야. 자기 자기 상태를 보여달라 이렇게 해서 끝났어.
두 번째 칼라 포인트 PCP로 칼라 포인트를 어떻게 했어?
생성자를 호출해 생성자를 호출하면서 객체를 생성했어.
이거를 이제 인스턴스 변수와 생성 객체 생성이라고 하는 거야.
그러면 얘도 똑같아. CP 이거 만들어진 얘는 생성자인 거고 얘는 메소드를 호출한 거야.
그러면 얘를 한번 구경해 보자. 포인트라는 걸 만들어서 익스텐지 했어.
그러면 실제로 컬러 포인트는 필드가 지금 프라이빗 스트링 컬러 하나가 있지만 얘는 익스텐즈 되었기 때문에 실제 얘가 만들어지면 칼라 포인트가 만들어진 필드가 몇 개야?
장효준 지 필드가 몇 개일까? 3개지 왜 그럴까? 위에 거를 받았을 상속받았으니까 비록 얘는 하나에 들어 있지만 XY 칼라가 들어 있는 거야.
与会者 1 16:05 明白了吗?所以现在又 p 显示点,它又调用了什么方法?方法。但它的作用是什么?就是想显示。显示自己的状态,就这样结束了。第二个颜色点 PCP 是如何创建颜色点的?通过调用构造函数,调用构造函数并创建对象。这就是所谓的实例变量和对象创建。那么这个也是一样的。CP,这个是通过构造函数创建的,那个是调用了方法。那么让我们来看看。创建了一个点,并进行了扩展。那么实际上,颜色点现在有一个私有的字符串颜色,但因为它被扩展,所以当它被创建时,颜色点的字段有几个?张效俊的字段会有几个?3 个,为什么?因为继承了上面的,虽然它只有一个,但还包含了 XY 颜色。
Attendees 1 17:17
그러면 효준이한테 한 번만 더 물어보자. 효준아 그럼 네가 보기에 요 세 칼라는 필드 생성자 메소드 중에 뭐일까?
메소드야 그렇지 왜 뭐 보고 알았지? 보이드 때문에 좋았어 그랬어.
그래가지고 내가 효민아 보니까 새 칼라를 보니까 새 칼라를 메소드를 하나를 잡아왔는데 얘는 스트림으로 잡았어.
근데 이름이 칼라야. 근데 내가 가지고 있는 컬러도 또 컬러거든.
얘 이름하고 이름이 똑같으면 원래 충돌을 해야 되지 않아.
원래는 충돌 어떤 컬러인지 모르잖아. 원래 시어너에서는 이거 안 돼.
근데 지금 얘가 이렇게 해서 칼라를 넣었네. 그럼 칼라는 칼라 이거 말이 안 되는데 그래서 뭐 썼어?
디스 이거 이디스는 어디 디스야? 예디스야 예디스야 이거 1번 2번 1번 아니지 이 이거 이거지 이거 디스예요.
그래서 이 칼라는 요 뒤에 매개 변수를 가지고 오는 애 이 디스 칼라는 내 필드에 있는 애 그래서 얘는 매개 변수의 칼라고 얘는 필드에 있는 칼라 다른 겁니다.
与会者 1 17:17 那么再问一下效准。效准啊,那么在你看来,这三个颜色是字段、构造方法中的哪一个?方法对吧,为什么看了就知道?因为 void 所以感觉不错。然后我看到效敏时,看到新颜色,抓住了一个新颜色的方法,他是用流抓的。但是名字是颜色。但是我持有的颜色也是颜色。如果名字相同,原本应该会冲突。原本在编译器中是不行的。但现在他这样放入了颜色。那么颜色是颜色,这说不通。所以用了什么?this,this 在哪里?是预 this,预 this,这是 1 号,2 号,不是 1 号,就是这个,这就是 this。所以这个颜色是后面带参数的,这个 this 颜色是我字段中的,所以他是参数的颜色,这是字段中的颜色,是不同的。
Attendees 1 18:35
그래서 여기도 보니까 얘도 또 칼라라는 거 쇼 한번 했네 쇼 하고 또 요 위에 거 쇼 포인트 한번 해보고 요 위에 있는 자기 부모가 가지고 있는 쇼 포인트를 또 호출했네.
가능할까? 부모가 가지고 있는 메소드를 호출했어 가능할까?
가능해요. 이게 상속의 특징을 갖고 있는 거예요.
부모 그러니까 얘를 이 익스텐지의 경우는 요거를 요 밑에다가 포함시켰다고 생각하면 더 쉬울 것 같아.
얘 따로 얘 따로 이렇게 생각하지 말고 익스텐즈를 하면 이거를 그대로 카피해서 이 위에다 이렇게 딱 넣었다고 상상을 하고 보면 얘가 그냥 불러지는 게 느껴지는구나 이렇게 해서 CP를 만들었고 CP 셋 했으니까 얘는 뭐를 호출한 거야?
손범수
与会者 1 18:35 所以这里也看到他又做了颜色展示,展示后又在上面展示点,还调用了上面父类拥有的展示点。可能吗?调用了父类的方法,可能吗?可以的。这就是继承的特征。父类,就是说在继承的情况下,可以把这个包含在下面。不要分开思考,继承时就像是把它复制粘贴到上面。可以感受到它就是被调用了。这样创建了 CP,设置了 CP,所以他调用了什么?孙范秀
Attendees 2 19:23
메소드
出席者 2 19:23 方法
Attendees 1 19:24
메소드를 호출한 거야. 얘도 메소드 그리고 얘도 메소드를 호출해서 다 불러온 거예요.
그래서 상속을 한번 이걸 다시 한 번 해보는데 여러분 이거 다 싹 지우고 이름은 무슨 걸로 패키지든 상관없고 메소드 파일을 저장할 때 이름 뭘로 해야 된다고 컬러 포인트 ex로 저장 다시 한번 해보고 그다음에 포인트랑 그다음에 컬러 포인트가 어디에 위치해야 돼.
그리고 내가 이걸 왜 다시 싹 지우고 해보라고 하냐면 잘하는 친구들도 있지만 이 위치가 많이 틀렸어.
그래서 한 번 더 한번 해볼게요. 똑같이 한번 만들어 봅시다.
이 코드는 어려운 게 없습니다. 그렇죠 다들 이해한 거죠.
상속을 한 번 더 완전히 정복한다 생각하고 패키지 수 하나 안에서 다 처리하는 거니까
出席者 1 19:24 调用了这个方法。这个也是方法,那个也是调用了方法,所以全部都调用了。所以我们再次尝试继承,大家把这个全部删除,不管是什么包,保存方法文件时名称是什么,保存为颜色点 ex,再次尝试,然后是点和颜色点的位置在哪里。我之所以让你再次全部删除重新做,是因为即使是优秀的同学,这个位置也经常出错。所以我们再次尝试。完全一样地创建一次。这段代码并不难。对吧?大家都理解了吧。把继承再完全掌握一次,因为都在一个包内处理。
Attendees 1 20:34
찡찡거리더니 위에 시험을 자세히 보시
听起来嘀嗒作响,仔细看了上面的考试
Attendees 1 20:45
김추 치고는 열심히 따라왔어요.
对于金秋来说,她很认真地跟上了。
Attendees 1 20:53
제 이름을 어떻게 해서 만들어야 되지? 우리 패키지는 이름을 아무렇게나 써도 되는데 저 파일 자바 파일 이름을 이렇게 다시 한 번 적어주고
与会者 1 20:53 我应该如何创建我的名字?我们的包名可以随意写,但是那个 Java 文件名需要再次重新写一遍。
Attendees 2 22:00
그럼 메인이 없네요.
与会者 2 22:00 那么这里没有主方法(main)。
Attendees 1 22:34
이거를 넣어요.
出席者 1 22:34 放入这个。
Attendees 1 24:27
우리 이거 5번 문제처럼 한번 해볼까 CP를 지금 하나 만들었잖아 이거 CP를 3개 만들어 볼까?
이 밑에다가 밑에다가 컬러 포인트 CP 이렇게 만들었는데 컬러 포인트 CPS로 해서 변수 CPS로 해서 배열 3개짜리 한번 만들어 볼까?
出席者 1 24:27 我们就像第 5 题那样试试看,现在不是已经创建了一个 CP 吗?我们再创建 3 个 CP 怎么样?在这下面,我们创建了颜色点 CP,那么我们用变量 CPS 来创建一个 3 个元素的数组如何?
Attendees 1 25:00
어떻게 만들어야 되지? 우리 원래 객체 클래스 객체 하나 만들 때는
与会者 1 25:00 应该如何制作?我们原来的对象类,创建一个对象时
Attendees 1 25:17
대체 클래스 한 개 만들 때는 한 개 만들 때는 예를 들어서 저 이름이 너무 기니까 짧게 쓸게 포인트 한 개짜리 만들 게 포인트하고 포인트를 새로 하나 생성할 때
与会者 1 25:17 到底创建一个类时,举个例子,因为我的名字太长,所以我会简短地写,创建一个点对象,然后创建一个新的点
Attendees 1 25:38
우리가 인트 a는 3 한 것처럼 포인트라는 거를 하나의 클래스를 자료형이라고 그냥 추상적으로 생각하고 그다음에 또 하나의 어떤 얘는 예를 들어 인트라는 사이즈의 자료형 크기 흙이다라고 가정을 한다면 얘 변수 이름 아무거나 내가 p라고 넣었어 그다음에 포인트의 뉴 포인트를 해주기 위해서 생성할 때 얘는 생성자를 호출한다고 우리가 지금 이렇게 이런 하나의 변수를 만들듯이 클래스를 만들 때 이 규칙을 갖는다고 했어 그치 그러면 이거 한 개짜리는 이렇게 하고 그러면 배열을 만들 때는 어떻게 해야 되지?
배열을 여러 개의 배열을 만들어 객체 배열을 만들 때
听众 1 25:38 就像我们对整数 a 是 3 的情况一样,我们将点(Point)视为一个类和数据类型,然后假设整数有一个大小,我将变量名称设为 p。然后,为了创建点的新对象,我们调用构造函数,就像我们现在创建变量一样,类遵循这个规则。那么,如果是单个对象是这样,那么创建数组时应该怎么做?创建多个对象数组时该如何操作?
Attendees 1 26:35
여기 앞에는 뭐가 들어갈까? 객체별로 포인트 얘는 이렇게 생긴 거지 인트 a는 3 3하고 1 2 3 4 이렇게 3 이렇게 있다고 가정하자면 얘는 생성하고 초기화를 다 한꺼번에 처리를 하는 예제를 보여준다면 얘 객체를 생성을 할 때는 똑같이 뉴를 하기는 해 포인트로 해 포인트로 객체를 생성할 건데 좀 달라 객체 배열의 경우는 예를 들어서 내가 얘는 앞에다 먼저 넣을 수도 있고 뒤에다 넣어도 돼 이렇게 해도 되고 이렇게 해도 되고 둘 중에 하나 쓰면 되는데 만약에 이렇게 둘 중에 하나 아무거나 아무튼 이렇게 내가 c라는 변수로 배열을 만들었어.
실제 우리 c 언어에서는 여기에다가 숫자를 넣지만 자바에서는 이 숫자를 넣으면 돼 안 돼 안 돼 그러면 이거 배열을 만드는 것까지는 됐어 그다음에 여기에 이렇게 생겼는데 얘는 어떤 게 들어가야 되지?
효민아 여기에는 뭐가 들어가야 되지? 여기 3 들어간 것처럼 여기도 배열의 개수를 지정해줘야 되는데 어떻게 해줄까 꺽새 가로를 해줘.
听众 1 26:35 前面应该放什么?假设每个对象的点是这样的,整数 a 是 3,3 和 1 2 3 4,这样的 3,如果展示一个同时创建和初始化的例子,创建对象时仍然使用 new,使用 Point,将创建 Point 对象,但对于对象数组的情况会有所不同。例如,我可以先在前面放置,也可以在后面放置,两种方式都可以。假设我用变量 c 创建了数组。在 C 语言中,我们会在这里放入数字,但在 Java 中,是否可以在这里放入数字?这样就完成了创建数组。接下来,这看起来是什么?效民,这里应该放什么?就像这里放了 3 一样,这里也需要指定数组的数量,我们该如何做?使用尖括号。
Attendees 1 27:56
여기다가 이렇게 3을 넣어줘. 이거랑 똑같이 생긴 게 이거예요.
여기는 초기화를 아직 안 한 상태고 이렇게 해주는 상태인 거예요.
그러면 자바는 이렇게 객체를 생성하는 것과 객체 생성과 초기화를 따로 해주어야 되는데 여기 초기화를 해주기 위해서 이 초기화의 개념이 생성자예요.
생성자 왜 우리 생성자의 기본 필드에 대한 데이터를 초기화 생성자에서 초기화해 준다 그랬잖아 그러면 여기에서 맨 위에 포인트를 넣고 그러면 여기 저 문제에서는 이거를 어떻게 바꾸면 될까 3개짜리로 만드는 요 밑에다가 한번 써보세요.
다 하는 사람들은 그냥 술술 써지겠지 한번 해볼까?
여기다 밑에다가 칼라 포인트 CPS 배열의 모양 뉴 컬러 포인트 배열의 모양 3개 이렇게 하시고 그다음에 생성자를 1 0 1 2의 순서에 맞게 생성자를 호출을 할 거야.
그럼 호출할 때 우리 이렇게 배열을 쓰는 가장 장점은 뭐야?
장점은 방복문을 사용할 수 있다는 거야.
与会者 1 27:56 在这里输入 3。这个看起来和这个一模一样。这里还没有初始化,现在是这样的状态。那么 Java 在创建对象时需要分别进行对象创建和初始化,为了初始化,我们需要构造函数的概念。构造函数为什么要初始化基本字段的数据?如果在这里放置一个点,那么在这个问题中应该如何修改呢?将其改为 3 个。在下面写一下。对于已经了解的人来说,可能很轻松就能写出来。我们来试试吧?在下面写入颜色点 CPS 数组的形状,新的颜色点数组的形状 3 个,然后按照 1 0 1 2 的顺序调用构造函数。那么使用数组最大的优点是什么?优点是可以使用循环。
Attendees 1 29:13
방복문을 사용해서 한번 얘를 생성자를 변수 1 2 3을 넣든지 i 값에 대해서 아 값을 넣든지 그건 여러분들이 알아서 하시고 얘를 어떻게 해서 초기화를 하면 좋을까요?
생성자를 눌러서 생성자를 호출해 주세요. 그러면 예를 들어 i로 했다면 i와 i 플러스 1 이런 식으로 두 개의 변수가 필요합니다.
왜냐하면 CP는 초기화를 할 때 두 개의 생성자 생성자가 없긴 하지만 필드가 총 3개구나.
그러면 그 자기가 넣기 나름이죠. 자기가 3개 다 넣을 수도 있고 2개만 넣을 수도 있고 그래서 어떻게 초기화를 하면 좋을까요?
다 한 사람 객체 배열 배열까지 생성하는 거 한번 마음대로 한번 만들어 보세요.
한번 이게 다 돼야지 배열과 객체 배열까지 진행이 되어야 됩니다.
모르는 친구들을 위해서 약간 힌트를 줄게요. 힌트를 좀 줘보겠습니다.
이 두 개의 상속하고 배열의 객체 배열을 완전히 다 이해가 가면 그럼 잘 따라오신 거예요.
이거 아주 간단해요.
与会者 1 29:13 使用循环来初始化,可以插入变量 1 2 3,或者使用 i 值来插入,具体由你们自己决定。那么如何初始化呢?按下构造函数来调用构造函数。例如,如果使用 i,那么需要两个变量,i 和 i 加 1。因为 CP 在初始化时需要两个构造函数,虽然没有构造函数,但有 3 个字段。那么如何初始化最好呢?已经完成的人可以自由创建对象数组。只有完成对象数组的创建,才能继续进行。为了帮助不太了解的朋友,我给一些提示。如果完全理解继承和对象数组,那么你已经很好地跟上了。这其实很简单。
Attendees 1 30:37
요 밑줄에다가 객체를 만들고 포문을 이용해서 객체 생성을 해보세요.
그런데 컬러 포인트의 생성자가 지금 없기 때문에 여기다 아이를 넣으실 필요는 없습니다.
넣어도 되고 넣으려면 생성자를 만들어야 돼. 근데 지금은 예제가 생성자가 없으니까 이 아이를 빼고 만들어보면 되겠습니다.
그리고 출력도 가능하겠죠. 출력 대신에 출력에 해당되는 메소드는 다르게 불러야겠지만 이거를 참조하셔서 CP 배열을 한번 생성해 보세요.
在这个下划线处创建对象,并使用 for 循环进行对象创建。由于颜色点的构造函数目前还没有,所以您不需要在这里放置 ID。如果要放置,则需要创建构造函数。但现在示例没有构造函数,所以可以不加这个 ID。而且还可以进行输出。输出方法可能会有所不同,但请参考这个方法创建 CP 数组。
Attendees 1 31:23
이거는 이 객체에 대한 배열은 아주 중요합니다. 왜 여러분들이 잡았다고 이번 학기만 배우고 다시는 안 볼 거예요 자바 아니죠?
자바 이제 여러분들이 전공자니까 자바 프로그래밍을 배우겠죠.
그러면 자바 프로그램으로 할 수 있는 것들이 뭐가 있을까요?
스윙도 있고 앱 개발도 있고 안드로이드도 있고 안드로이드에도 다 자바가 들어가거든요.
그리고 유니티도 자바로 들어가 있고 그러면 이제 게임 제작이 됐던 앱을 개발을 했던 자바로 만약에 쓸 일이 있다면 객체를 생성해야 되는데 객체가 만약에 100개야 그럼 100개를 다 일일이 한 개 한 개씩 만들 거예요.
이미 이제 배열을 배웠으니까 어떻게 객체가 똑같이 생긴 몹을 만든다고 가정을 했을 때 100개를 생성하도록 만들어야겠지 각자의 이름을 붙여서 그럼 어떻게 해야 돼?
객체 생성을 모르면 안 돼요. 그래서 배열을 반드시 객체 배열을 완전히 익혀야지만 할 수 있고 우리 이제 다음 시간부터 스윙을 배웁니다.
这个对象数组是非常重要的。为什么你们认为这只是这个学期学的,以后就不会再看了?这不是 Java 吗?现在你们是专业学生,将学习 Java 编程。那么用 Java 可以做什么呢?有 Swing、App 开发、安卓开发,安卓中也都有 Java。而且 Unity 也用 Java,无论是游戏制作还是 App 开发,如果要使用 Java,就需要创建对象。如果对象有 100 个,你会一个一个地创建吗?既然已经学了数组,当你想要创建 100 个长相相同的"怪物"时,应该如何创建?每个都要起名字。所以如果不懂对象创建就无法实现。因此必须完全掌握对象数组,我们下节课开始学习 Swing。
Attendees 1 32:34
이 스윙을 배우면 스윙 안에는 버튼도 여러 개가 들어 가 있고 이미지도 엄청 많이 들어가는데 각각 일일이 하나씩 하나씩 만들지 않아요.
그럼 각각 그 아이들의 특성에 맞게 객체 배열을 써야 하기 때문에 이 두 가지를 반드시 알아두셔야 돼요.
객체 생성하는 방법 호출하고 객체를 배열로 바꿔서 처리하는 거 이게 다 이해가 가셨으면 다 한 사람은 손 들어서 좀 보여주세요.
学习 Swing 时,Swing 中包含多个按钮和大量图像,我们不需要逐个逐个创建它们。因此,我们必须了解两个关键点:根据每个对象的特性使用对象数组,以及如何创建对象并将其转换为数组进行处理。如果大家都理解了这一点,请举手示意。
Attendees 2 33:56
그래서 거기에서 이제 c CP는 CPS에 아이 번제 어떤 뉴하고 생성자를 붙여줘요.
갈라 포인트 생성자를 맞추는 기본 운영을 위해 통으로 들어 요.
그래서 만약에 다른 값을 지정해서 하고 싶다 그러면 생성자를 만들면 안 되고 지금은 없으니까 기분
因此,在这里,我们需要在 CPS 上添加 I 编号和构造函数。通过调整构造函数来实现基本操作的整体处理。如果想指定不同的值,则需要创建构造函数,但现在还没有,所以基本上是这样。
Attendees 2 34:29
이거에 대한 이거 순서로 한번 볼까 볼까?
参与者 2 34:29 我们来看看这个顺序?
Attendees 2 34:53
아니 잠깐 이게 세제를 만들었어. 이름 예쁜데 도시고 얘를 지키는 부분이죠.
걔를 통해서 만들어진 f를 정리해야 되는데 애플을 접근해야 되는데 지그 케를 완전 클래스
参与者 2 34:53 哎,等等,我制作了这个洗涤剂。名字很漂亮,这是城市,保护它的部分。通过它创建的 f 需要整理,但要接近苹果,完全是一个类的 Zig Ke。
Attendees 1 35:20
컬러 포인트에는 아이를 가지고 있는 생성자가 없어요.
만약 이렇게 쓰고 싶으면 여기다가 생성자를 오브 로딩을 하면 되지만 없기 때문에 기본 생성자인 아이가 없는 기본 생성자를 해야 되는 그렇게 근데 거기까지 하고 뭔가 아주 간단해요.
그냥 그게 다야 어느 정도 다 이해가 된 것 같아요. 그러면 오늘 리뷰한 것 중에서 이 두 개가 가장 중요한데 여기까지 질문 없죠 좋아요.
계속할 거야 이거 계속 나오거든 진짜 여러분 눈 감고도 쓸 줄 알아야 돼.
그럼 객체 생성하고 이제 호출하는 방법 아까 메소드로 호출하는 거 다 설명한 것 같고요.
객체를 상속을 받기 위해서 이미 자바에 들어 있는 클래스들이 엄청 많아요.
그러면 우리가 지금은 우리가 만들어서 이렇게 상속하는 거를 한번 해봤는데 실제 자바에서는 오브젝트라는 아이가 있고 그 하위에 엄청 많은 자바 클래스들 있어요.
与会者 1 35:20 颜色点中没有带孩子的构造函数。如果想这样写,可以通过构造函数重载来实现,但目前没有,所以必须使用没有孩子的默认构造函数。现在看起来很简单,好像都理解了。今天回顾的这两个是最重要的,有没有问题?好的,继续。这个话题会反复出现,你们真的要能闭着眼睛写出来。然后是创建对象并调用,之前已经解释了如何通过方法调用。为了继承,Java 中已经有很多内置的类。我们现在已经尝试自己创建并继承,实际上在 Java 中,有一个 Object 类,下面有很多 Java 类。
Attendees 1 36:35
메스도 마찬가지로 우리 시험 문제에서도 매스 자 매스를 인폴트한 친구들도 있고 없는 친구도 있지만 인폴트 시키지 않더라도 매스 점 스쿼트를 하게 되면 자동으로 나오지만 사실은 다 잡아 인포트를 시켜줘야 매스를 그러니까 그냥 교육자의 마인드로 봤을 때는 시켜줘야지 된다고 이제 그렇게 생각합니다만 어쨌든 자바 랭 오브젝트에 해당되는 거를 내가 쓰고자 한다 그러면 이 밑에 아이에서 뭔가를 내가 필요한 매스의 경우에는 스쿼트라고 한다면 스쿼트를 내가 쓰고 싶다 그러면 매스를 인폴트를 시켜서 그 하위에 있는 내용들 클래스를 내가 상속받아서 쓰겠다라는 거를 지정을 해줘야 됩니다.
그래서 최상위 클래스의 경우는 자바 오브젝트 이건 나중에 또 수행할 때 좀 설명을 드릴 거예요.
与会者 1 36:35 方法也是如此,在我们的考试题中,有些人导入了 Math,有些没有,但即使不导入,使用 Math.sqrt()时也会自动出现。但实际上,最好还是要导入。从教育者的角度来看,应该导入。无论如何,如果要使用 Java lang Object 中的内容,且在 Math 的情况下需要 sqrt,就必须导入 Math,然后继承其下的类。关于最顶层类,Object 类我们稍后会详细讲解。
Attendees 1 37:25
그 내용까지 해서 다 했고 그리고 생성할 때 아까 예를 들어 메인에서 CP를 만들려고 한다면 CP를 호출할 때는 CP로 올라가서 호출을 하고 CP의 부모인 포인트를 호출을 하고 포인트에서는 생성자를 거쳐서 생성자가 실행되고 실행돼서 내가 원하는 객체가 생성되어지는 순서도 설명을 드렸었고 이제 이것도 다 했던 거고 질문 그래서 부모의 것에 대한 내용이 예를 들어 여기 포인트 컬러 포인트라고 가정하자면 컬러 포인트의 경우에서는 부모가 포인트이기 때문에 부모에 대한 내용들을 접근하고자 할 땐 슈퍼를 사용한다는 거 여기까지 다 된 것 같아요.
그리고 슈퍼를 사용할 때 슈퍼 생성자에 대한 거 슈퍼 x를 하시면 내가 원하는 생성자를 다시 한 번 원하는 만큼의 생성자를 호출할 수 있는 거 이거 안 해도 되겠죠 그러면 오늘은 9장을 하고 싶어요.
근데 9장은 설명만 좀 하고 오늘은 일찍 끝내드릴게요.
参会者 1 37:25 内容已经全部完成,例如,如果要在主程序中创建 CP,则需要调用 CP,进入 CP 并调用其父类点,然后通过构造函数执行,生成我想要的对象。我还解释了这个过程。关于父类的内容,例如假设这里是颜色点,由于父类是点,所以要访问父类的内容时使用 super。我们已经讨论了这些。使用 super 时,可以通过 super(x)再次调用想要的构造函数。如果不这样做也没关系。今天我想讲第 9 章。不过今天只做简单讲解,会提前结束。
Attendees 1 38:43
시험도 열심히 다 보고 그러면 공부하느라 지쳤을 건데 오늘은 수행에 대한 설명만 좀 하고 다음 주 엄청 이거 진짜 재밌어요.
다 개인적으로 저는 그래픽을 보 프로그래밍을 가지고 그래픽을 할 수 있는 이 부분은 뭐라고 해야 되나 되게 큰 장점 프로그래머로서의 가장 큰 장점 그러니까 디자인을 직접적으로 맥스라든지 마야 같이 3D를 만드는 건 아니지만 자바를 통해서 그와 같은 형태를 컨트롤 할 수 있도록 도와주는 인터페이스의 개념이기 때문에 여러분들이 제가 그래서 생각했어요.
이 수업을 그냥 자바 앞에 상극이나 이런 것까지 코딩하는 거 위주로만 수업을 하고 말까 고민을 하다가 그래도 스윙을 좀 배우고 가시면 나중에 앱 개발 안드로이드 접근할 때 굉장히 쉬워요.
그래서 이거를 좀 하고 갔으면 좋겠다는 생각에 반으로 나눠서 요리 앞부분은 여러분들 개인적으로 공부를 하시고 자바요 스윙을 좀 해보고자 합니다.
지우아가 어떤 약자인지 혹시 알아요?
参会者 1 38:43 考试也都看过了,可能已经学习得很疲惫。今天只简单讲解实践,下周会很有趣。就个人而言,我认为使用编程进行图形处理是程序员最大的优势。虽然不是直接使用 3D 软件如 3ds Max 或 Maya 创建 3D 模型,但通过 Java 可以控制类似的界面。我曾考虑是否只专注于 Java 编码,但最后决定教授 Swing,因为这对今后进入安卓应用开发会很有帮助。我希望能将课程分成两部分,让大家自学 Java 并尝试 Swing。你知道 Swing 是什么缩写吗?
Attendees 1 39:58
GUI 들어봤어요 그래픽 유저 인터페이스예요.
그래서 가장 대표적인 게 뭐죠? 우리가 제일 많이 쓰고 있는 윈도우가 GUI라고 유저 인터페이스 UI라고 하는데 우리가 이제 GUI의 개념은 우리가 만들어서 프로그래밍을 통해서 인터페이스를 쉽게 하고자 하는 건데 이거 말고 이제 go의 GUI를 만들 수 있는 프로그램이 여러 개가 있어요.
써본 거 있어요 혹시 GUI 만들어 본 적 없어요? 한 번도 지우와의 대표적인 게 가장 시어어처럼 가장 낮은 수준의 프로그램이 비주얼 베이직이에요.
비주얼 베이직 들어봤어요. 비주얼 베이직도 엄청 쉬운 코딩 중에 하난데 걔도 이게 드래그 앤 드롭으로 해서 이렇게 끌어다 놓고 창을 생성할 수 있는 가장 간단한 프로그램인데 비주얼 베이직이고 비주얼 스튜디오 패키지 안에 들어 있어요.
参会者 1 39:58 我听说了 GUI,这是图形用户界面。那么最具代表性的是什么呢?我们最常用的 Windows 就是 GUI,也称为用户界面 UI,我们通过编程来简化界面。除此之外,还有几个可以创建 Go GUI 的程序。你有没有创建过 GUI?最基础的程序是 Visual Basic。听说过 Visual Basic 吗?它是最简单的编程之一,通过拖放方式可以创建窗口,是最简单的程序,集成在 Visual Studio 包中。
Attendees 1 41:07
그래서 이제 만약에 집에 설치되어 있다면 비주얼 베이직을 한번 해보셔도 좋을 것 같고 그다음에 지금 자바도 지금 프로그램 자체는 우리가 이클립스로 사용하고 있지만 얘가 왜 오늘 수업을 왜 못하냐면 자바에서 자바에 아까 얘기한 트리같이 생긴 아이들이 막 이렇게 있었잖아요.
근데 지금 가장 기본적인 건 코드에 관련된 거는 지금 다 깔려 있어요.
JDX 그런데 이 스윙은 또 이제 컴파일러가 이제 이 JDX의 버전에 따라서 여러 가지가 JDK 뭐 뭐 뭐 뭐 뭐 뭐 이렇게 있잖아요.
근데 그중에 따라서 이거를 컴파일 자바를 사용하겠다고 자바 홈을 잡아줘야 돼요.
그리고 이렇게 여러 가지의 자바가 벌처 머신이 깔려 있기 때문에 그중에서 내가 어떤 것을 사용하겠다고 자바 홈에서 환경 변수를 처음에 잡아줘야 되는데 지금 우리가 그걸 잡을 수가 없어요.
이거 컴퓨터 권한 자 자기네 본인 컴퓨터는 다 할 수 있어요.
参会者 1 41:07 如果在家里安装了,可以尝试使用 Visual Basic。然后,我们现在使用 Eclipse 来编程 Java,但今天的课程无法进行,是因为 Java 中有像树一样的组件。现在最基本的是代码相关的部分已经都准备好了。JDX,但是这个 Swing 编译器取决于 JDK 的版本。因为有多个 Java 虚拟机,所以需要在 Java Home 中设置环境变量来选择使用哪个版本。但现在我们无法设置,因为这需要计算机权限,而个人电脑可以自行设置。
Attendees 1 42:06
근데 여기는 학교 컴퓨터라서 접근을 못해서 조교가 해줘야 되는데 아무튼 자바홈을 환경 변수로 잡아줘야지 우리가 그 밑에 오브젝트들이 막 여러 가지가 있고 그중에서 우리가 원하는 수행의 부분을 컨트롤 할 수가 있어.
그래서 인폴트가 안 돼 그래가지고 컴파일이 안 돼서 지금 오늘 그냥 설명만 할 거예요.
이 얘기가 뭔 얘기냐면 자바 GUI에서는 이제 자바에서는 크게 처음에 나온 게 awt 이 awt awt라고 할게 BT 여기에서는 패키지 안에서는 우리 버튼 버튼 만들잖아요.
여기 맨 위에 있는 거 버튼이라든지 편내 그다음에 이런 가장 기본적인 거 그 이미지 이런 것들이 이제 쓸 수 있도록 몇 가지의 메소드가 이렇게 있어요.
그리고 우리가 이거를 awt를 링크를 걸면 쓸 수 있는데 이거는 약간 투박해요.
가장 기본적인 거라 그래서 이거보다는 스윙이 있는데 스윙은 조금 더 예뻐요.
与会者 1 42:06 但是这里是学校的电脑,所以无法访问,需要助教来帮忙。无论如何,我们需要设置 Java 主目录作为环境变量,这样我们就可以在下面的对象中控制我们想要执行的部分。因此,导入失败,无法编译,今天只能进行讲解。这是什么意思呢?在 Java GUI 中,最初出现的是 AWT,这个 AWT 在包中创建按钮。在最上面的是按钮,接下来是一些基本的东西,如图像等,有一些方法可以使用。如果我们链接 AWT,就可以使用,但这看起来有点粗糙。作为最基本的东西,比起 AWT,Swing 看起来更漂亮。
Attendees 1 43:16
이거를 호출하면 조금 더 예쁜 버튼을 이렇게 쓸 수 있는데 대신에 얘는 버튼이라면 스윙은 얘랑 얘랑 구분하기 위해서 대문자 j를 붙여요.
제이 버튼 그러게 내가 우리 아까 우리 그 뭐야 클래스를 만들었대 포인트 클래스 가지고 온 것처럼 얘도 j 버튼하고 제 쓰는 방법은 제 버튼 b는 뉴 이렇게 하면 쓸 수 있어요.
얘를 그리 인폴트만 걸면 그니까 너무 쉬운 거야. 만들어져 있는 그냥 갖다 쓰면 되거든.
그러니까 이게 이거 환경 변수만 잘 맞춰져 있으면 내가 언제든지 갖다 쓸 수 있어요.
이 버튼 제2 버튼을 그래서 그렇게 스윙과 wtawt로 나뉘어져 있는데 guy의 목적은 사용자가 쉽게 쓸 수 있도록 하는 거예요.
그러니까 다시 말해서 인폴트만 걸어주고 이거 그냥 클래스 쓰기 쓰면 돼.
그러니까 여러분들이 5장까지 잘 배워뒀으면 그다음부터 이런 거 스윙 내가 원하는 거 인터넷을 찾아서 이런 게 이런 게 있더라.
与会者 1 43:16 调用这个时,可以使用更漂亮的按钮。不同的是,如果是按钮,Swing 为了区分,会在前面加大写字母 J。J 按钮。就像我们之前创建的 Point 类一样,可以使用 new JButton b 这种方式。只需要导入即可,这非常简单,直接使用已经创建好的类。只要环境变量设置正确,我随时都可以使用。这个按钮是第二个按钮。Swing 和 AWT 的目的是让用户更容易使用。换句话说,只需导入并使用类即可。如果你们已经学习到第 5 章,接下来可以在互联网上找到你想要的 Swing 组件。
Attendees 1 44:18
그러면 인폴트 시켜서 쓰면 돼 아주 쉬워 그래서 이런 형태로 만들어져 있기 때문에 자바가 접근하기가 쉬운 거야.
그러면 이제 그래픽 유저 인터페이스에 그 뜻을 이제 설명을 한 거고 마우스나 키보드를 이용해 쉽게 입력할 수 있고 자바 지어의 특징은 아까 말한 것처럼 쉽게 프로그래밍할 수 있어 있고 패키지가 2개가 있는데 awt와 스윙이 있는데 혼용은 안 돼.
대신 awt와 이제 스윙은 혼용이 안 되고 awt는 패키지를 호출할 때는 자바 awt 점 별표 하면 모든 걸 가지고 오는 거고 스윙은 자바 x 점 스윙 점 x 별표 하면 패키지를 인폴트할 수 있어.
이 두 가지를 해놓고 그다음에 기본적으로 인폴트는 두 개 다 시켜도 상관이 없어요.
그렇게 해놓고 이제 사용하는데 하는 방법은 이렇게 생겼습니다.
스윙은 스윙의 버튼은 제 버튼 이렇게 생겼어요. 약간 내가 그냥 awt 버튼은 못 봤는데 얘가 그냥 이렇게 그라데이션처럼 약간 이렇게 예쁘게 돼 있잖아요.
如果导入使用,就可以了,非常简单。因此,Java 可以轻松访问这种形式。现在,我解释了图形用户界面的含义,可以通过鼠标或键盘轻松输入。Java 的特点是我之前说的,可以轻松编程。有两个包,AWT 和 Swing,不能混用。导入 AWT 包时使用 java.awt.*,会导入所有内容;导入 Swing 包时使用 javax.swing.*。这两个都可以导入,没有问题。使用方法如下:Swing 的按钮是 JButton,看起来有点像渐变,比较漂亮。
Attendees 1 45:27
근데 투박하게는 회색 이렇게 생긴 것도 있고 그래서 그런 것들에 따라서 이 이미지가 살짝 조금씩 달라요.
그 버전에 따라서 j가 붙었으면 스윙이구나 버튼이라고 했으니까 내가 그 스윙이 가지고 있는 버튼을 클래스를 내가 가지고 올 수 있어 이렇게 생각하시면 되고 종류는 여러 가지가 있는데 이거는 가장 대표적인 것만 이제 많이 쓰는 것만 보여주고 있고 아마 다음 시간에 이런 것들을 하나씩 다 써볼 거예요.
방법은 되게 쉬워 인폴트 시키고 그냥 클래스 부르듯이 쓰면 돼.
근데 제 버튼 뭐 뭐가 있는지 알아야 되니까 제2 버튼 있고 제 체크 박스 있어.
체크 박스는 이 박스 안에 여러 개가 있으면 체크는 여러 개가 선택이 가능한 거 가능한 거고 옵션은 여러 개 선택이 안 되는 거 그래서 그룹으로 묶어져 있고 각각은 밸류가 1 2 3 내가 마음대로 지울 수 있어요.
但也有灰色、朴素的样式,所以图像会略有不同。如果有 J 前缀,就知道是 Swing 的,比如按钮,我可以调用 Swing 中的按钮类。这里只展示了最常用的几种,下次课我们会逐一尝试。方法很简单,导入后直接像调用类一样使用。有 JButton、JCheckBox 等。复选框可以选择多个,单选按钮组只能选择一个,每个都可以自由设置值。
Attendees 1 46:22
a b c 할 수도 있지만 가장 기본 지금 1 2 3이라고 밸류가 들어가 있으면 그 밸류에 따라서 선택을 하게 되는 거고 그다음에 그러니까 예를 들어 사과라고 있으면 사과를 밸류 값으로 듣는 게 아니라 각각의 인덱스 값으로 처리가 밸류 값이 처리가 된다는 거 제 슬라이더는 이제 이렇게 뭐야 슬라이더 모양의 툴인데 이거의 움직임에 따라 지정되어 있는 값을 밸류 값으로 가져요.
내가 요즘 밸류 값을 100으로 두면 100의 위치에 들어가고 그리고 최소값 최댓값을 지정을 할 수가 있는 거고 그다음에 이제 텍스트 필드는 여러분 우리 이제 홈페이지 같은 거나 이런 거 만들 때도 보면 이렇게 이름 옆에 텍스트 있죠 이거 다 텍스트 박스예요.
텍스트 박스 어떤 거는 비주얼 베이직의 경우는 텍스트 박스로 돼 있고 얘는 텍스트 필드고 이제 프로그램에 따라서 조금 다르지만 텍스트 필드로 되어 있고 그다음에 패스워드는 입력을 했을 때 별표로 표시되는 얘는 따로 이제 이런 패스워드 필드가 따로 있습니다.
与会者 1 46:22 a b c 虽然可能,但最基本的现在是 1 2 3,如果值是这样,就会根据这个值进行选择。然后,比如说有"苹果",不是作为值来听,而是作为每个索引值来处理。我的滑块就是这样,是一种滑块形状的工具,根据其移动来指定值。如果我现在将值设为 100,就会到 100 的位置,并且可以指定最小值和最大值。接下来,文本框是我们在制作网页等时经常看到的,名字旁边都有文本。这些都是文本框。在 Visual Basic 中是文本框,这里是文本域,根据不同程序可能略有不同。然后,密码在输入时会显示为星号,有单独的密码域。
Attendees 1 47:27
그리고 이런 드론 박스도 있고 그리고 에어리어 텍스트 에어리어 경우에는 여러 줄이 들어가는 거 그다음에 슬라이드 콤버 박스 이거는 저기 뭐야 이렇게 선택해서 여기 지는 거 하면은 수직 바가 있는 거고 그다음에 이 리스트 리스트의 경우에는 여기 안에 내가 내용을 넣을 수 있는 건데 이거와 좀 내용이 다르게 생긴 거는 여기에서는 이렇게 드로박스의 형태로 사용할 때 사용하는 그리고서 애옹이 많아지면 슬라이더가 자동으로 생성되는 거고 이런 것들이 있고요.
그다음에 이거는 이제 예제니까 이거 다음에 한번 해보시면 됩니다.
그래서 이제 여기서 중요한 거는 제 메뉴도 있어요.
그래서 내가 제 메뉴를 누르면 이렇게 메뉴 반을 만들 수 있어 되게 간단합니다.
그냥 호출만 하면 돼. 그리고 안에 내용만 채워주면 돼.
그다음에 다이얼로그가 있고 프레임이 있어요. 얘가 가장 큰 윈도우의 가장 기본 틀이에요.
그런데 뭐지?
与会者 1 47:27 还有下拉框,以及文本区域,文本区域可以输入多行。然后是滑动组合框,可以选择并有垂直滚动条。列表可以在其中放入内容,与之类似但外观不同的是在此处以下拉框形式使用。当选项变多时,滑块会自动生成。接下来是例子,你们可以尝试一下。重要的是还有菜单,当我点击菜单时,可以很简单地创建菜单栏,只需调用并填充内容。然后有对话框和框架,框架是最大窗口的基本框架。但是是什么呢?
Attendees 1 48:22
다이얼로그의 경우에 이렇게 형태가 어떻게 돼 있냐면 제목 표시 줄이 있고 최소 최대 x표 구성돼 있고 그다음에 여기에 다이얼로그를 하나 판넬을 더 올려서 넣을 수도 있고, 프레임은 정말 진짜 그냥 그냥 종이 a4지 같은 역할을 하는 거고 여기 이 프레임 위에다가 이런 기능들 이런 것들은 다 이렇게 얹어서 쓸 수가 있어요.
그렇게 되어 있고 그래서 우리가 윈도우 창을 만들듯이 사용할 수가 있는 거예요.
근데 이게 어떻게 생겼냐면 여기 이제 GI 우리 앞으로 이제 이걸 만들어보는 거예요.
이제 이런 거 이런 것도 다 이제 갖다 붙여서 위치 위치 지정 x 좌표 y 좌표 해서 넣고 그다음에 여기 너비 얼마 세로 얼마 이렇게 윙크 HTML 만들듯이 만들 수 있는 거야.
자바로. 근데 이 GI의 라이브러리 아까 오브젝트 아래 뭐 이렇게 아까는 땡땡땡으로만 표시돼 있는데 어떻게 생겼냐면 오브젝트 밑에 이제 awt 클래스가 먼저 가장 기본이에요.
对于对话框,它的形态是这样的,有一个标题栏,最小化、最大化和关闭按钮,然后你可以在上面添加一个面板对话框,而框架就像一张 A4 纸一样,你可以在这个框架上添加各种功能。这样我们就可以像创建窗口一样使用它。它的样子是什么样的呢?这就是我们接下来要创建的 GUI。我们可以像制作 HTML 一样,通过指定 x 和 y 坐标、宽度和高度来在 Java 中创建它。但是这个 GUI 库,之前在对象下只是用点点点表示,实际上最基本的是 AWT 类。
Attendees 1 49:22
그다음에 우리가 스윙이라는 걸 더 예쁘게 꾸며지는 다른 아이들을 얘네를 어떻게 만들었을까 어떤 기능으로 자바의 무슨 특징으로 얘가 만들어졌지 awt를 기반으로 해서 얘가 더 뭔가 색깔도 넣고 폰트도 바꾸고 해서 뭐 만들었어요?
이거 상속으로 만든 거다. 가장 기본은 뭐야? a wta 요거 처음에는 이렇게 생겼겠지 오브젝트 폰트 처음에 이제 1.1로 배울 때는 이거부터 배웠겠지.
처음에 이걸로 만들었다가 사용자가 이거를 상속받아서 더 많이 만들어내고 또 상속받아서 스윙이라는 걸 만들어내서 거기에 칼라도 입히고 폰트도 바꾸고 색깔 폰트도 바꾸고 이렇게 해서 만들어낸 게 수익이야.
근데 이게 수익이 너무너무 잘 만들어져서 우리가 지금 이거를 공부하고 있는 거야.
여러분들이 더 좋은 걸 만들어내면 여러분의 이름으로 뭔가 만들어지지 않을까 그렇게 되기를 희망하며 오브젝트에서는 가장 기본적으로 하나 둘 셋 넷 다섯 여섯 이게 가장 기본이에요.
接下来,我们是如何创建更美观的 Swing 组件的呢?它是用什么 Java 特性创建的?是基于 AWT,然后加入了更多颜色、字体等功能。这是通过继承创建的。最基本的是什么?就是 AWT。最初可能是这样的,对象、字体,最初可能是在 Java 1.1 时这样学习的。一开始使用这个,然后用户通过继承创造更多,并继续继承创造了 Swing,为其添加颜色、字体等。这个 Swing 做得非常好,这就是我们现在正在学习的内容。希望你们也能创造出更好的东西,也许能以你们的名字创造一些东西。在对象中,最基本的就是一、二、三、四、五、六这些。
Attendees 1 50:16
여기에 이걸 뼈대로 해서 만들어지고 만들어지고 만들어진 건데 awt는 여기 컴포넌트에 해당되는 그 클래스들을 사용하는데 여기엔 뭐가 들어 있냐면 버튼 라벨 텍스트 컴포넌트 리스트 캔버스 스크롤바 체크박스 초이스 이렇게 몇 개 안 되는 이제 이거보다 조금 더 있는데 아무튼 몇 개 안 되는 컴퍼넌트들로 이루어져 있고 그리고 컨테이너가 있어요.
컴포넌트와 컨테이너가 가장 중요합니다. 컨테이너는 컴포넌트를 여러 개 가질 수 있어요.
여러 개 가질 수 있고 이 한 개가 그냥 컨테이너가 되기도 해요.
이 컨테이너를 기반으로 여러 개로 충분히 확장이 될 수 있는데 그걸 컴포넌트라고 하고 우리가 스윙에서는 j를 붙이기 됐죠.
그래서 제 컴포넌트라는 스윙을 가질 수가 있어요.
근데 컨테이너에는 컴포넌트 판넬 윈도우 이렇게 가 가지고 있고 그다음에 이것 중에서 가장 여기서 좀 눈여겨봐야 될 것은 adawt에는 다이얼로그 프레임 app 이게 애플릿인데 애플릿 이렇게 해서 3개가 존재해요.
与会者 1 50:16 这是以此为骨架构建的,使用了 AWT 中对应的组件类。那里面有什么呢?比如按钮、标签、文本组件、列表、画布、滚动条、复选框、选择等很少数量的组件,虽然还有一些,但总的来说数量不多。还有容器。组件和容器是最重要的。容器可以包含多个组件。一个组件本身也可以成为容器。基于这个容器,可以很好地进行扩展,我们称之为组件,在 Swing 中,我们会在前面加上 J。所以我们可以拥有 J 组件。而在容器中,有面板、窗口等,其中最值得注意的是在 AWT 中有对话框、框架、App(小程序),共存在三种。
Attendees 1 51:26
지금 총 5개지만 다이얼로그 프레임 애플릿이 있고 이 세 가지를 통해서 스윙하고 연결이 됩니다.
그러면 이거 잘 눈여겨보세요. 제가 좀 이따가 물어볼 거거든요.
애플리 다이얼로그 그다음에 프레임 이렇게 세 가지가 있습니다.
그래서 여기에 확장돼서 우리가 앞으로 배울 게 자바 스윙 스윙에서 배울 게 요 j라고 붙어 있는 이런 컴포넌트들을 이제 배우게 될 거예요.
그래서 이제 형태가 이렇게 돼 있고 다 상속 상속되어 있고 상속 관계를 배우게 되는 이유는 그 부모 것도 다 쓸 수 있기 때문에 다 설명을 한 거고 스윙의 클래스의 특징은 뭐다 제가 붙어 있다.
제자가 붙어 있고 그다음에 수익의 컴포넌트의 두 가지 유형이 있는데 j 컴포넌트에서 상속받는 경우 awt의 컨테이너로 상속받는 두 가지가 있어요.
여기 보시면 자바 스윙을 쓰기 위해서 제 컴포넌트로 인폴트를 상속받아서 클래스를 사용하는 이유 그게 있고 awt 컴포넌트의 컨테이너를 상속받는 클래스로 만들 수가 있어 있어요.
与会者 1 51:26 现在总共有 5 个,包括对话框、框架、小程序,这三种与 Swing 相连接。请仔细留意,我一会儿会问你。有应用程序、对话框,然后是框架,就是这三种。因此我们接下来要学习的是 Java Swing,将学习那些带有 J 前缀的组件。现在形态就是这样,都是继承关系,之所以学习继承是因为可以使用父类的所有内容。Swing 类的特点是什么?就是带有 J 前缀。J 前缀,然后 Swing 组件有两种类型:一种是继承自 J 组件,另一种是继承自 AWT 的容器。就像你看到的,为了使用 Java Swing,可以通过继承 J 组件或 AWT 组件的容器来创建类。
Attendees 1 52:43
그러면 여기에 컨테이너에 들어 있는 클래스는 애플리 프레임 다이얼로그입니다.
이렇게 해서 받을 수 있는 두 가지 유형이 있습니다.
제이 컴퍼넌트에서 사용하는 거는 수행의 공통 속성을 구현한 추상 클래스입니다.
그래서 인스턴스는 여기서는 이렇게 사용하지 않는다고 이제 예로 들어 있고 예외로 들어 있고 컨테이너는 만약에 컨테이너를 내가 상속받고 싶다.
awt의 컨테이너 요거 요거를 상속받고 싶다 그러면 자바 점 awt 컨테이너 이렇게 받으시면 되고 그래서 이거를 어디 안에 내가 이걸 스크롤을 쓰고 싶어서 자바 점 awt 점 컴포넌트 이렇게 하기 귀찮잖아요.
그래서 어떻게 하냐면 자바 점 awt 점 모든 거 별표 이렇게 해요.
사실은 그거 일일이 다 이렇게 하기가 너무 어려워서 그냥 다 통틀어서 쓰긴 합니다만 이렇게 만약에 쓰겠다 하면 이제 무거운 소스를 좀 줄이고자 한다면 그러니까 더 섬세하게 상속을 받으시면 되겠습니다.
여기서 특징을 좀 볼게요. 이 특징이 가장 중요한데요.
与会者 1 52:43 那么在这个容器中的类是应用程序框架对话框。这里有两种可以接收的类型。在 J 组件中使用的是实现公共属性的抽象类。因此在这里不使用实例,并作为例外。如果我想继承容器,那么继承 AWT 的容器,就可以使用 java.awt.Container。如果我想使用滚动条,那么使用 java.awt.Component 会很麻烦。所以我们会这样做:java.awt.*。事实上,为了减少繁琐的源代码,我们通常会这样全局导入。让我们来看看这里的特点,这是最重要的。
Attendees 1 53:58
제2 프레임이 먼저 있고 그 위에 판넬이 있어요. 판넬에서는 약간 어떻게 보면 좋을까 하면 내가 책상이 있고 책상이 프레임이라고 가정하면 책상이 있고 책상 위에 이렇게 쟁반이 이렇게 있다고 보면 될 것 같아 쟁반 그걸 판넬이라고 보고 쟁반 위에 종이를 놓을 수가 있다고 보면 돼.
이 종이나 지우개 연필 이런 것들을 이제 컴포넌트라고 보면 돼.
그러면 이제 프레임은 책상이라고 봐야 돼. 윈도우 천 이 큰 창 요거 하나라고 보면 되고 판넬은 이런 종류들을 레이아웃으로 맞게 레이아웃 형태로 맞게 정리를 해줄 수 있는 영역을 지정을 해주고 그 위에 내가 만약에 셀을 구성을 왼쪽 오른쪽으로 나누겠다.
두 구획으로 나누겠다 하면 판넬을 2개를 더 올리고 그 위에 내가 원하는 재료들을 올릴 수 있어요.
그래서 요 순서가 내가 프레임을 먼저 넣고 판넬을 넣고 그 위에 판넬을 어떻게 어떻게 구성하는지 레이아웃을 지정을 하셔서 그 구성에 따라서 화면을 만들어내면 되겠습니다.
이게 이제 스윙이에요.
与会者 1 53:58 首先有一个框架,然后在框架上有一个面板。如果用桌子和托盘来比喻的话,桌子就是框架,托盘就是面板,你可以在托盘上放纸。纸、橡皮、铅笔这些可以看作是组件。那么框架就可以看作是桌子,窗口就是这个大窗口。面板可以按照布局方式整理这些组件,如果你想将屏幕分成左右两个区域,可以添加两个面板,然后在上面放置你想要的组件。所以顺序是先放框架,然后放面板,根据布局指定面板的构成,就可以创建界面。这就是 Swing。
Attendees 1 55:08
스윙에서 인포트해야 되는 거 이런 것들이 있고요.
여기서 가장 이제 중요한 거는 아까 말한 것처럼 컴포넌트 다 이거 하기가 너무 어려워서 그냥 별표로 다 한다는 거 자바 awt 점 별표 이벤트는 따로 해 주셔야 돼요.
이벤트 따로 해 주시고 아직 우리가 이벤트를 안 배우지만 이벤트를 처리할 때는 그러니까 클릭 이벤트라든지 마우스 이벤트, 드래그앤 들어 이런 이런 거 아니면 키보드 입력 이런 이벤트를 처리할 때는 이벤트를 반드시 인폴트를 시켜주어야 합니다.
그래서 스윙 프레임을 먼저 프레임이 있고 그 위에 메뉴 바가 있고 컴포넌트들의 뭐야 재료들을 이제 얹어서 표현을 할 수가 있어요.
근데 이거 오늘 간단하게 이거 먼저 한번 해볼 건데 실행은 안 될 건데 실행은 안 되지만 한번 해볼 거예요.
마찬가지로 일단 프로젝트를 다 지우시고 새로 만들어 봅시다.
파일 이름은 마이 프레임이고요.
与会者 1 55:08 在 Swing 中需要导入一些内容,最重要的是,就像我之前说的,因为组件太难处理,所以干脆用星号全部导入,即 java awt.*。事件需要单独处理,尽管我们还没学习事件,但在处理事件时,如点击事件、鼠标事件、拖拽事件或键盘输入事件时,必须导入相应的事件。因此,可以先创建一个 Swing 框架,在框架上添加菜单栏和其他组件。今天我们将简单尝试这个,虽然可能无法执行,但还是会尝试。同样,请先删除之前的项目,然后创建一个新项目。文件名为 MyFrame。
Attendees 1 56:11
그리고 스윙을 내가 제 프레임이라는 걸 제 프레임은 여기서 선언하지 않은 클래스 이름이지만 어디서 가져왔어요?
인폴트 자바 스윙에서 제 프레임을 익스텐즈 상속받을 수가 있어요.
그러면 내가 이거만 적어주면 j2 프레임을 익스텐지 할 수 있어요.
그럼 제 프레임을 쓰고자 한 그 스윙의 내용의 프레임을 가지고 오는 거고 그 프레임을 기반으로 해서 만들어내면 가장 3개는 반드시 지정을 해줘야 돼.
이거보다도 몇 개의 기본적인 게 있는데 타이틀하고 셋 사이즈 셋 비저블은 얘를 생성할 때 만들어지는 기본 생성자에서 선언되는 거기 때문에 얘를 만들어줘야 돼요.
우리가 지금 기본 생성자를 오버라이딩 하듯이 여기다가 마이 프레임을 이제 이렇게 생성자잖아요.
다 마이 프레임을 만들어 놓고 이 생성자의 이 부모 클래스가 가지고 있는 메소드를 호출한 거야.
与会者 1 56:11 关于 Swing,我的框架是一个未在此处声明的类名,但它是从哪里来的呢?可以从 java.swing 中导入 JFrame 并继承它。只需要写 extends 就可以继承 JFrame。这样就可以获取 Swing 中的框架内容,并基于该框架创建。有三个必须指定的基本属性:标题、大小和可见性,这些都在默认构造函数中声明。我们将像重写基本构造函数一样,创建 MyFrame 的构造函数,并调用父类的方法。
Attendees 1 57:04
그렇죠 호출해서 세팅을 해주고 그다음에 이렇게 이제 셋 타이틀 셋 사이즈 셋 비저브를 모르지만 프레임의 프레임을 또 찾아보면 이런 것들이 메소드 있겠죠.
그러면 그 메소드의 형태에 맞게 내가 지금 넣어준 거야.
그쵸 그럼 내가 이걸 기본적으로 넣어주고 그러면 이 클래스 생성자를 하나 만들었기 때문에 마이 프레임이라는 내 거야.
내 거 내가 만든 건데 제 프레임의 부모 거를 가지고서 세팅을 한 거야.
내 마음대로 그 내 특성에 맞게 할 수 있다고 했잖아.
그쵸 특성화에 맞게 내 프레임을 생성자에서 만들어놓고 내가 만든 클래스의 생성자를 호출한 거야.
됐죠 근데 내가 이거 생성자 안 하고 여기다가 바로 써도 돼요.
사실은 부모 거니까 그렇지만 내가 다시 부모 거를 받아서 오버라이딩을 할 수 있어.
对的,调用并设置,然后接下来设置标题、大小和可见性等方法。如果查看框架的方法,会有这些方法。那么我就按照这些方法的形式进行设置。是的,我先基本设置,因为我创建了这个类的构造函数,所以这是我的框架。这是我创建的,我用父类的设置来设置我的框架。正如我之前说的,我可以根据自己的特性进行定制。是的,我在构造函数中根据特性创建了我的框架,并调用了我创建的类的构造函数。好了,其实我也可以直接在这里写,因为这是父类的内容。但我可以重新接收父类并进行重写。
Attendees 1 57:48
오브라이딩을 해서 여기다가 내 거에 대한 프레임을 이제 프레임이라는 이름으로 클래스를 생성하고 객체를 생성하면 자동으로 이렇게 만들어지고 실행하면 오는 안 되지만 실행하면 이렇게 이걸 실행하는 건 다음 시간에 해볼게요.
그래서 이거를 만드실 때 요 기본적으로 이 3개를 반드시 적어주셔야 되고 하나가 더 있거든요.
근데 요 x표를 눌렀을 때 다 치는 건데 여기 지금 예제에서는 여기 안 나와 있어요.
좀 이따가 보여줄게요. 다 썼으면
通过重写,在这里创建以框架命名的类并创建对象,它会自动生成并运行。虽然现在还不能直接运行,但我们将在下节课尝试。在创建时,你必须写这 3 个基本内容,还有一个内容。就是当点击关闭按钮时的处理,但在当前示例中没有显示。我等会儿会给你们展示。如果已经写完了
Attendees 1 59:08
실행은 안 돼 지금 너 노트북이라서
与会者 1 59:08 现在无法执行,因为是你的笔记本电脑
Attendees 2 59:16
동영상이 있었는데 데 풀어 저희가 퍼블릭 클릭 이거 파일 이런 거 만들잖아요.
거기다가 제 프레임 확장한 걸 넣는 거 같아. 근데 이게 상 받은 클래스네요.
여기는 모르나
与会者 2 59:16 有视频,我们会创建公共点击和文件等。似乎是把扩展的框架放在里面。但这是一个获奖的类。这里不太清楚
Attendees 1 59:35
이게 생성자 마이 프레임이라는 클래스의 생성자 내 거 생성자 오버로딩 한 거지 누구 거를 부모 거를 그렇지 그렇지 그게 이제 상속받으면 할 수 있는 거잖아.
그렇지 그러니까 제 프레임 안에는 새 타이틀 셋 비즈 주 우리는 모르지만 그게 다 이미 들어 있고 우리 아까 그래서 뭐야
与会者 1 59:35 这是构造函数,我的 MyFrame 类的构造函数,我是重载的构造函数,继承父类的。这是可以通过继承实现的。所以在 JFrame 中已经包含了标题设置等功能,虽然我们不知道,但这些都已经内置了。所以是什么来着?
Attendees 1 1:00:09
여기서 보면은 여기 있지 여기서 보면은 안 돼 4장인가 4장에서 보면은 사장님요.
잠깐 슈퍼 슈퍼 엑스에 있던 거 부모 거를 가져와서 호출할 수 있잖아 그게 어디 있었나 4천 원
与会者 1 1:00:09 你看这里,在第 4 章中,老板,稍等。可以调用超类 X 中的父类方法,这是在哪里来着,4000 元
Attendees 1 1:00:39
아니다 보장이다.
参加者 1 1:00:39 这不是保证。
Attendees 1 1:00:44
이렇게 여기서 보면은 부모 여기 봐봐. 나한테 좀 전에 질문했던 여기 이제 이게 부모고 이게 자바 프레임이라고 치면 자바 프레임이고 제 프레임이라고 가정하자.
그럼 내가 그걸 가지고 와서 쓰잖아. 근데 얘가 이렇게 내가 만들어서 어떤 여기에 지금 메소드가 지금 이 예제에는 메소드가 없네.
그럼 메소드에 있는 거 넣을까? 예를 들어서 여기도 지금 메소드가 아닌 생성자밖에 없지만 a라는 클래스가 있고 a 생성자 a 하나 a가 두 개 있지.
생성자 b의 경우도 b가 있고 a를 상속받았는데 b 생성자 두 개 있지.
근데 b에서 보면 슈퍼라고 해서 슈퍼 x를 했네. 이 슈퍼는 누구 거야?
얘는 근데 얘는 모르는데 어떻게 썼어? 이거 그치 이게 바로 부모 거지 부모 거를 상속받았겠네.
부모 거를 a라는 이 슈퍼는 a랑 매칭이 되는 거야.
그럼 매칭돼서 그 x를 넣어준 거야. 근데 여기서 이제 지금 제 프레임의 경우는 여기 안에 s 사이즈 셋 비저블 이게 있는 거야.
参加者 1 1:00:44 如果从这里看,这是父类。看看这里,我刚才问过你的这个,现在假设这是父类,这是 Java 框架,那么就是 Java 框架,我的框架。那么我就会拿来使用。但是,如果我创建它,现在这个例子中没有方法。那么要不要加入方法?例如,这里现在只有构造函数,有一个 A 类,有一个 A 构造函数,有两个 A,对于 B 构造函数的情况,也有 B,并且继承了 A,B 有两个构造函数。但是在 B 中,使用了 super,super x。这个 super 是谁的?但是它不知道,怎么使用的?这就是父类,继承了父类的东西。这个 super 与 A 匹配。然后放入了 x。而在这个 JFrame 的情况下,里面有设置大小、可见性的方法。
Attendees 1 1:01:47
그리고 여기서 내가 셋 사이즈 셋 비저블을 쓴 거야.
쓸 수 있어 상속됐기 때문에 여기서 슈퍼로 쓴 것처럼 쓸 수 있어.
그러니까 이 예제에서 보면 제 프레임이 이제 위에 있다고 가정하고 제2 프레임을 받으면 제 프레임 안에는 셋 타이틀 셋 사이즈 셋 비저블이 있고 내가 다시 그거를 오버 라이딩을 할 수가 있어요.
다시 써서 할 수 거기에는 기본 값으로 설정이 돼 있고 그 값을 내가 메소드를 호출해서 값을 지정을 하면 그 값이 바뀌잖아 셋처럼 그래서 이렇게 한 거고 그 밑에서는 어때 그렇게 해서 생명자를 내가 만들었어 그러면 이 아이는 뭐야?
제2 프레임을 가지고 있는 내 클래스야. j2 프레임을 내가 상속을 받았기 때문에 이렇게 생긴 것들을 가지고 있는데 거기에다 오버라이딩으로 내가 300 곱하기 300은 스윙 프레임이야라는 타이틀을 이름 바꿔 고 그다음에 여기 크기는 얼마로 할 거야 그리고 화면을 보여줘라고 내가 오버 라이딩을 한 상태를 내가 만든 거야.
与会者 1 1:01:47 然后在这里,我使用了三种大小的可见性。由于继承,我可以像使用超类那样使用它。所以在这个例子中,假设我的框架在上面,当我收到第二个框架时,我的框架中有设置标题、设置大小和设置可见性,我可以重写它。重新编写,那里有默认值设置,当我调用方法并指定值时,值就会改变,就像设置一样。所以我是这样做的,在下面怎么样?我创建了生命者。那么这是什么?是我拥有第二个框架的类。因为我继承了 J2 框架,所以我拥有这些属性,并通过重写将标题改为 300 乘 300 的 Swing 框架,然后设置大小并显示屏幕。
Attendees 1 1:02:55
그리고 이제 여러분 인데 이렇게 만들면 요 x표 눌렀을 때 이벤트 처리가 안 되거든요.
그래서 요 이벤트 처리하는 것까지 하고 오늘은 수업을 그냥 빨리 끝내드릴게요.
그래서 지금 오버라이딩이 안 되는데 어쨌든 지금 실행은 안 돼 요 한 줄만 더 써주세요.
요 요거는 그러니까 이 x표를 닫았을 때 닫히는 거거든요.
그래서 고기 아까 했던 것 중에서 이 한 줄만 더 추가해 주세요.
그렇게 해놓고 저장해놓고 다음 시간에 실행하면 바로 될 것 같아요.
셋 디폴트 클로즈 오퍼레이션인데 얘는 이 엑스표를 닫았을 때 이벤트 처리를 해주는 기본 설정 값이에요.
세티폴트 클로즈 오퍼레이션
与会者 1 1:02:55 然后现在大家,如果这样做,点击 X 标记时事件处理就不会生效。所以为了处理这个事件,今天的课程就到此结束。现在重写还不行,无论如何现在无法执行,请再写一行。这就是当关闭 X 标记时关闭的情况。所以在之前的内容中,请再增加这一行。保存后,下次执行时就可以直接运行了。设置默认关闭操作,它是处理关闭 X 标记事件的默认设置值。设置默认关闭操作
Attendees 1 1:03:45
다만 이제 이게 실행이 잘 되면 지금까지는 텍스트로 처리를 했기 때문에 이게 잘 됐나 어쨌나 안에 내용이 내가 한 게 잘 처리가 된 건가 의문이 들지만 이렇게 비주얼적으로 뭔가 GUI를 사용하게 되면 내가 어떤 이벤트를 처리한 게 눈에 팍팍 보이기 때문에 이 이해도가 더 더 빨리 돼요.
여기까지만 하고 오늘 일찍 끝낼게요. 좀 쉬면 안 되는 게 좀 이게 정상이에요.
지금 거기 자기 노트북은 돼야 돼요. 자기 노트북이 안 되는 친구들은 우리 1장에서 1장에서 요거 요거 잠깐만 잠깐만 창을 좀 닫을게요.
환경 변수 이거 설정해 오세요. 1장에 28페이지에 있거든요.
요거 환경 문수 처리하는 거 각자 노트북에서 할 수 있어요.
그러면 노트북에서는 돼야 돼.
参会者 1 1:03:45 现在,如果这个能够顺利执行,到目前为止我们一直在处理文本,所以我不确定我做的是否被正确处理。但是,当使用可视化的 GUI 时,我处理的事件会一目了然,因此理解起来会更快。就到这里,今天我们提前结束。稍微休息一下是正常的。现在,在座的同学的笔记本电脑都应该能用。对于笔记本电脑无法使用的同学,我们将在第 1 章的 28 页稍微关闭窗口。请设置环境变量。每个人都可以在自己的笔记本电脑上处理这个。那么笔记本电脑应该能够使用。
Attendees 1 1:04:41
이거 이거 한번 조정하셔가지고 대기해가지고 오시고 지금 그 외에 여기 실습실 컴퓨터는 자체적으로 안 되는 거니까 노트북 가지고 계신 분들은 요거 잡아드리고 설정 환경도 좀 바꿔가지고 그리고 처리하는 방법은 우리 콤맨드 창에서 컴파일 c 한 거 자바 c 한 거 기억나시죠?
그걸로 컴파일이 잘 되는지 확인한 후에 자바 홈 이 빈을 하셔야지 이제 얘가 처음에 드래프팅을 해서 실행하는 첫 번째 라인으로 들어가서 자바를 링크를 걸거든요.
그래서 설정해 하시면 아마 바로 될 거예요. JDK 19 이상이 설치가 되어 있으면
参会者 1 1:04:41 请调整这个并等待。现在实验室的计算机本身是无法使用的,所以拥有笔记本电脑的同学,我将为你们提供这个并调整环境设置。处理方法是在命令提示符中编译 C 和 Java,还记得吗?在确认编译成功后,您需要设置 Java Home Bean。它最初会链接到 Java 的第一行执行。如果已安装 JDK 19 或更高版本,可能会立即生效。
Attendees 1 1:05:34
그래서 이거 1장에 28페이지 노트북 가지고 있는 친구들은 환경 변수 다 편집해가지고 오시고 오늘은 코드 여기까지만 작성하고 일찍 끝낼게요.
다 한 사람은 가셔도 됩니다. 오늘 검사할 게 없어요.
因此,对于笔记本电脑的同学们,请准备好所有环境变量,今天我们只编写到这里的代码,然后提前结束。已经完成的人可以离开了。今天没有需要检查的内容。
Attendees 2 1:06:01
오늘 재밌을 줄 알았는데
我原本以为今天会很有趣
Attendees 1 1:06:04
가지고 생각도 못한데 이거는
参会者 1 在 1:06:04 说:这是我从未想过的
Attendees 1 1:06:51
뭐가 궁금해? 너도 안에다가 넣어
参会者 1 在 1:06:51 说:你有什么疑问?把它放在里面
Attendees 2 1:06:53
바보 우리 둘이도 아니어서 안 돼
出席人员 2 1:06:53 傻瓜,我们两个也不行
Attendees 1 1:07:03
그래 그래서 내가 그걸 강점을 줘야 되나 말아야 되나 고민해.
강점은 안 줘. 채점은 이런 각각 내가 그 문제를 낸 의도에 맞는 거를 한 경우를 채점을 했어.
각 문제당 5개 5점씩 나눠서 총 40점에서 30점 40점으로 나눠서 내가 원하는 그 값을 썼는지 체크를 하고 점수를 카운팅을 했습니다.
出席人员 1 1:07:03 对,所以我在犹豫是否要给这个优势。不给优势。评分是这样的,对于我出题的意图,我检查了每个问题是否符合要求。每个问题分为 5 个小项,5 分,总共 40 分到 40 分,检查我是否使用了我想要的值,并计算分数。
Attendees 2 1:07:31
아니 그냥 되는 거
与会者 2 1:07:31 不 就是可以的
Attendees 1 1:07:48
왜 아니야? 아니야 무슨 짜증이야 그냥 그럴 수 있다 생각하지 아니 시험 잘 봤던데 왜
与会者 1 1:07:48 为什么不行?不行吗?什么烦躁的 就当是可以的 不 不是考试考得很好吗 为什么
Attendees 3 1:08:06
비지키에 깔린 걸로
参与者 3 1:08:06 躺在比吉基上
Attendees 1 1:08:08
많이 못 한 적 없어 뒤에 있어서 열심히 하는지 몰라.
参与者 1 1:08:08 没有不努力,因为在后面所以不知道是否认真工作。
Attendees 1 1:08:26
생각 안 해봤어 우리
与会者 1 1:08:26 我没有考虑过
Attendees 2 1:08:28
그거 수md에서 확인할 수 있는데 지금
与会者 2 1:08:28 这个可以在 smd 中确认,现在
Attendees 1 1:08:32
다음 주 화요일에 휴강 할게요. 대체 공휴일이어 가지고 휴강하고 출석 처리는 할게요.
그냥
下周二我们休课。因为是公共假日,所以休课,但会正常处理出勤。就这样
Attendees 1 1:09:14
슬라이드 안 올렸구나. 내가 슬라이드 es를 왜 안 줘 거기다가 올
原来你没有上传幻灯片。我为什么不给你幻灯片 es,并把它上传到那里
Attendees 2 1:09:19
확실히 높고 아니다. 빨래 건조시키고 또 빨래 또 빨래 빨래 지금 버거 부서진 거야 나 왜 이렇게 빨래방 사 빨래 버거가 부서졌어
出席人数 2 1:09:19 确实很高,但不是。晾衣服,再晾衣服,再晾衣服,现在汉堡破了,我为什么要这样去洗衣店,汉堡都破了
Attendees 3 1:09:40
그거야 어다 그냥 걸어두면
出席人数 3 1:09:40 那个就是 随便放着就行
Attendees 2 1:09:41
걸 데가 없지 그냥 그래서 어쩔 수 없이 건조기를 쓰러 가야 돼.
건조기 하나 사 건조기 들어갈 자리가 없어. 여기 와보라고
与会者 2 1:09:41 没有地方可去,就只能这样,所以不得不去使用烘干机。一台烘干机,没有地方放烘干机。你来看看
Attendees 1 1:09:54
안돼. 우리 수업 할 거야. 봐
与会者 1 1:09:54 不行。我们要上课。看
Attendees 2 1:09:56
이 TV 3명 들어가
参会者 2 在 1:09:56 进入了这个电视频道 3 人
Attendees 1 1:09:58
수업할 거야. 이 성 내가 따로 안 어울려 지금 말 잠깐만
参会者 1 在 1:09:58 将开始课程。这个姓氏我现在暂时不想混在一起
Attendees 1 1:10:15
있었으면 주석 처리도 내가 아니구나 하고 처리를 해줬는데 그게 너구나
如果出席人员在 1:10:15 时出现,我本应该注释处理,但那是你。
Attendees 2 1:10:49
계속 잠깐 후에 오늘 이거 말해 끝났대. 진짜 학생회 방으로 가자.
稍后继续,今天说完这个就结束了。真的,我们去学生会室吧。
Attendees 2 1:11:13
그래서 이걸 실행하는 거에만 메인이 있어야 되는 거고 인폴트는
与会者 2 1:11:13 所以只有执行这个的主程序应该存在,导入是
Attendees 1 1:11:21
얘는 어 왜냐하면은 프로그램이 들어 패키지가 여러 개 있다 하더라도 내가 실행하고자 하는 그 포인트의 위치가 필요해.
그런데 그게 메인이라는 이름으로 규칙을 정해놨어.
근데 내가 메인이 여러 곳이 있으면 이 컴파일러가 실행하는 위치를 모르는 거야.
그래서 컴백이 안 될 수도 있기 때문에 내가 원하는 위치의 시작은 프로그램이 어쨌든 실행을 해야 되잖아.
동시에 뭔가 타스크가 여러 개가 있게 내가 일률적으로 만든 게 아니라면 그래서 반드시 메인은 하나 코드의 가장 기본적으로 교육자의 입장에서는 그게 있어서 만약에 컴퍼 에러가 안 난다 할지라도 교육자 입장에서는 그거는 지향한다.
与会者 1 1:11:21 因为即使有多个包,我也需要执行的那个程序的入口点位置。而这个位置已经用主程序这个名称规定了。如果我有多个主程序,编译器就不知道从哪里开始执行。因此可能无法正常运行。无论如何,程序都必须有一个执行起点。如果不是同时有多个任务,而是我以统一的方式创建的,那么从教育者的角度来看,主程序必须是代码的基本起点。即使编译器没有报错,教育者也会倾向于保持这种做法。
Attendees 2 1:12:03
교수님 혹시 매스 스 빼고 샀었는데
参与者 2 1:12:03 教授,我本来是不包括质量的买的
Attendees 1 1:12:12
뭐 내가 몇 스펙 다 썼으면 그룹 점수 다 줬겠지 그리고 이제 사실 문제 1번 2번 3번은 그냥 기본 점수 주려고 낸 문제야.
내가 원하는 건 이제 클래스에 대한 개념과 그리고 이제 얘네들을 잘 활용해서 쓰는가 그리고 객체를 생성하는 데 어떻게 알고 썼는가 이런 거가 포인트이기 때문에 거기에 맞춰서 고 이제 각각의 문제를 다 이거는 전부 중력으로 돼버리면 잘했겠지.
뭐 잘 못했으면 기말고사 때 열심히 해야지. 뭐 우리가 몇 퍼센트까지 이거 a를 줄 수 있니 뭐래?
요리 정해져 있어. 이게 내가 올리고 싶다고 올려지는 게 아니라 최대한 올리는데 너무 애들이 잘했는데 성적이 안 나 나온다.
그러면 내가 이제 학과 사무실 요청해서 조금만 더 올려주세요 할 수는 있어.
근데 기본으로 10명인가 15명 내외 학생 수의 20% 30% 이랬나 아무튼 그게 정해져 있어.
参与者 1 1:12:12 如果我已经使用了所有的规格,我会给整组打分。实际上,第 1、2、3 题只是为了给基本分。我想要的是对类的概念的理解,以及如何有效地使用它们,以及如何创建对象。这是重点,所以我会根据这一点来评分。如果全部都用重力做对了,那就很好。如果没做好,就要在期末考试时努力。我们能给 A 到多少百分比?这是固定的。这不是我想上传就能上传的,而是尽量上传。如果学生做得很好但成绩不理想,我可以向学院办公室申请稍微提高一下。但基本上是固定的,大概 10 到 15 名学生左右,大约 20%到 30%。
Attendees 1 1:13:18
그래서 내가 선착순으로 점수를 일단 다 주고 안 되더라도 점수가 나쁘지는 않을 거니까 그건 걱정 안 해도 돼.
그냥 기본 b라고 생각하고 좀 열심히 해주면 기본 b b가 좋은 거 아니야 너무 좋습니다.
너무 좋아. 기본비 이런 데가 어디 있어? 다 다 깐깐하게 주신다고 하던데 30년만 기본 b부터 시작한다고 봐 너무 못하지 않으면 b야.
그리고 좀 잘했다 싶으면 a a하고 b안이 차이가 별로 없어요.
사실 수고하셨습니다.
所以我会先给分数,即使不行,分数也不会太差,所以不用担心。就当是基础 B,努力一下的话,基础 B 不是很好吗?太好了。太好了。哪里有这么基础的地方?都说会很严格地给分,就从基础 B 开始 30 年,只要不是太差就是 B。而且如果做得还不错,A 和 B 其实没什么大区别。事实上,辛苦了。
Attendees 1 1:14:05
다운로드를 하는 게 아니라 요거 1장 교환해서 교환 1장 있잖아.
이 1장을 보고 얘를 보고 따라서 해야 되거든. 그러니까 예를 들어 시작에서 보면 내가 이거를 쓸 줄 모르니까 모르겠는데 이게 시작에서 보면 이게 시스템 환경 변수를 시작 메뉴에 너가 이거 중국어로 바꿔서 한번 해봐.
시스템 한글로 안 되나 아무튼 시스템 환경 변수라고 해서 치면 이거대로 순서대로 1 2 3, 4 5 이거 순서대로 해가지고 재부팅 하면은 실행이 될 거야.
이렇게 하면 이렇게 하면 돼. 요거 요거 자바 홈 설정하고 이거 저거 뭐야 이거 그거 뭐야 교환의 일장 1장 28번에 요거 처리해가지고 재부팅하면 컴파일이 될 거야.
不是下载,而是交换一张。这一张,看了这个,然后跟着做。所以举个例子,从开始看,我不知道怎么做,但是从开始看,这是系统环境变量,开始菜单,你把这个翻译成中文看看。系统,不管是中文还是什么,系统环境变量,输入后会按照 1 2 3,4 5 这个顺序,重启后就能运行。就这样做。这个,设置 Java 主目录,那个,什么来着,在交换的第 28 页处理后重启就能编译。
Attendees 4 1:14:59
그래서
与会者 4 1:14:59 所以
Attendees 1 1:15:01
순서대로 따라서 해봐.
与会者 1 1:15:01 按顺序跟着做。
Attendees 4 1:15:03
잠시만요.
出席者 4 1:15:03 请稍等。
Attendees 4 1:15:12
제리 씨 어디에 에서
出席者 4 1:15:12 杰瑞先生在哪里
Attendees 1 1:15:17
이건 여기서 못 보고 이거 이 프로그램에 보면 아까 여기 여기 밑에서 네가 너 거는 내가 모르겠는데 여기서 보면 내 걸로 한번 해볼게.
여기서 보면 너도 똑같이 여기다 쓰는 거야. 내 거 이름으로 여기서 시스템 환경 변수 이렇게 치면 여기에 이렇게 나오거든.
그러면 이제 환경부에서 여기 보면 봐봐.
参会者 1 1:15:17 这个在这里看不到,这个在这个程序中看的话,刚才在这里,这里下面,你的你的,我不知道,在这里看的话,我会尝试用我的。在这里看的话,你也是一样地写在这里。用我的名字,在这里系统环境变量这样输入的话,就会这样出现。那么现在在环境部看的话,看看。
Attendees 1 1:15:43
아무튼 찾아봐 나중에 이렇게 봐봐 내 거를 보라고 아무튼 모르겠어 봐 내 거 이거 이거 이거를 누르면 이렇게 나와 창이 그러면 이건 좀 다르다.
잠깐만 시스템 환경 요거 이렇게 편집 이렇게 근데 나는 지금 여기 봐봐 이게 내가 지금 못해 이건 조교가 해줘야 되거든.
근데 이거 하면 창이 나와 인터넷으로 뜨면 안 되고 여기 이렇게 보면 시스템 이렇게 치면 이렇게 생긴 게 나와야 돼.
컴퓨터로 컴퓨터 모양으로 어 그거 그거 거기에서 거기서 거기에서 내가 중국어를 몰라가지고 시스템 환경 변수가 있어 이렇게 생긴 건가 아무튼 있어.
내가 어떻게 생겼는지 모르겠어. 그거 가서 들어가면
参会者 1 1:15:43 无论如何,查找看看,以后这样看看,让我看看我的。反正不知道,看看我的,这个,这个,这个,点击后会这样出现窗口。那就有点不同。稍等,系统环境,这样编辑。但是我现在在这里看,这个我现在无法做,这需要助教来做。但是这样的话,窗口会出现,不应该是通过互联网弹出,而是这里这样看,系统这样输入的话,应该出现这样的东西。通过电脑,电脑的形状,啊,那个,那个,在那里,那里,那里,因为我不懂中文,系统环境变量是这样的吗?无论如何,存在。我不知道它长什么样。去那里进入
Attendees 1 1:16:41
그건 거 같아 그거 맞는 것 같아 내가 중국어를 모르겠어 여기 맨 밑에 건가 아마 그럴 거 거기서 자바 홈이 있어.
자바 패스 패스 여기에 28번 보전 여기 보면 패스 패스에서 패스 목록에 찾아가서 이거를 만들어 만들기가 있어.
만들기 생성 만들기 있어 여기서 만들기가 있어 거기 맨 위에 건가 두 번째 거 만들기에서 요거 요거 넣어줘야 돼.
이거 써봐 퍼센트
参会者 1 1:16:41 那是的 好像是对的 我不懂中文 这里是最底下的吗 大概是那样 那里有 Java 主目录 Java 路径 路径 在这里第 28 处 看这里 路径路径中找到列表 创建这个 这里有创建 创建 这里有创建 那里最上面还是第二个创建 需要放入这个 试试百分比
Attendees 1 1:17:27
똑같이 써야 돼요. 홈 빈 추가하고 확인 버튼 누르고 그러면 이거 이것도 해야 되는데 그럼 일단 거기 그거 하고 확인 버튼 눌러봐.
확인 버튼 눌러 그리고 이거 먼저 해야 돼. 그러면 거기에 여기에서 자바 요거 만들기인가?
네 만들기 자바 홈을 만들어야 돼. 먼저 이거를 아니 그거 말고 여기서 만들기 요거 아니야 이거
参会者 1 1:17:27 要完全一样 添加 Home 并点击确认按钮 然后还需要做这个 那么先做那个 然后点击确认按钮 先点击确认按钮 那么在这里创建 Java 主目录了吗? 是的 需要创建 Java 主目录 先做这个 不是那个 是这里的创建 不是这个
Attendees 4 1:17:57
뭔 주문 이거 신건 다운로드 이거 캔집
与会者 4 1:17:57 这是什么订单 这是下载 这是罐头
Attendees 1 1:18:01
편집 편집해야 되나? 아니 편집 아니야 편집 아니고 만들기 해야 된대.
만들기 버튼 없어 그게 만들기야 그럼 자바 홈 이거 만들어야 돼.
그리고 이 탐색기 여기 탐색기에 가서 너 거가 지금 현재 들어있는 걸 찾아야 되거든.
탐색기
与会者 1 1:18:01 编辑 需要编辑吗?不是,不是编辑,而是要创建。没有创建按钮 那就是创建。那么 Java 主页 这个需要创建。然后在资源管理器中 你现在需要找到已经存在的内容。资源管理器
Attendees 2 1:18:25
요거 요거
与会者 2 1:18:25 这个 这个
Attendees 1 1:18:28
아니 탐색기 요거 요거 요렇게 생긴 거 이렇게 가서 너의 탐색기를 가서 프로그램이 어디 들어 있는지 봐야 돼.
여기서는 c c 밑에 프로그램 파일즈 밑에 자바가 있거든.
요거 이 경로를 카피해야 돼. 거기다 써야 되니까 너 파일 여기로 들어가서 이거를 카피 떠서 거기다 붙여놔야 돼.
컨트롤 c에서 컨트롤 v 여기랑 달라. 너 거는 탐색기에 가서 c에 가서 탐색기 그게 탐색기야.
탐색기에서 c 이거 이클립스 말고 c 시에 가서 프로그램 파일즈 프로그램 파일즈 들어가서 잡아 잡아.
与会者 1 1:18:28 不是,资源管理器 这个 这个 是这样的 这样去看你的资源管理器在哪里放置程序。在这里,c 盘下的"程序文件"文件夹下有 Java。这个路径你要复制。因为你需要在那里写入,所以你要进入这个文件,复制它并粘贴在那里。这里的控制 C 和控制 V 是不同的。你的是要去资源管理器,进入 C 盘,进入资源管理器。在资源管理器中进入 C 盘,不是 Eclipse,是 C 盘,进入"程序文件"文件夹,找到 Java。
Attendees 1 1:19:28
그럼 프로그램 파일즈 말고 그럼 프로그램 파일즈 자봐.
거기에 그거 그거 여기 이거 그거 컨트롤 c 그래서 거기다 컨트롤 v 확인 그래 가지고 그러면 여기 자바 홈이 있고 그 홈을 여기서 패스를 건 거란 말이야.
그리고 확인을 하고 확인을 하고 이제 재부팅하면 돼.
那么程序文件,不,程序文件的 Java。在那里,那个,那个,这个,那个,按 Ctrl+C,然后在那里 Ctrl+V 确认。这样就有了 Java 主目录,并且在这里设置了路径。然后确认,确认,现在重新启动就可以了。
Attendees 2 1:19:58
하게 해서
完成
Attendees 1 1:19:59
확인 다 하고 확인 확인하고 재부팅 컴퓨터를 다 껐다 켜라고 확인 이거 하고 하고 끄고 끄고 다 끄고 다시 실행해야 돼.
다 끄고 다시 실행하고 다시 해봐야 돼. 근데 이게 한 번에 딱 되지 않아.
여러 번 해야 돼. 이게 잘 안 될 때가 있거든. 근데 방법은 그거야.
알겠지. 그렇게 해서 잘 되게 확인하고 오면 돼. 오케이 알겠습니다.
그래도 생각보다 시험 잘 봤대.
参会者 1 1:19:59 检查完所有内容并确认,关闭并重新启动计算机。检查这个并关闭,全部关闭后重新执行。需要重新尝试。这不是一次就能成功的。有时候会比较难弄。但方法就是这个。你懂了吧。确认一切正常后就可以了。好的,我明白了。据说考试比预期的要好。
Attendees 4 1:20:35
제가 최대한 있어요.
参会者 4 1:20:35 我尽我所能。
Attendees 1 1:20:39
생각보다 잘 봤대. 너네들 고생했어. 말도 안 통하는데 그래 잘했어.
그래
与会者 1 1:20:39 听说比想象中看得不错。你们辛苦了。虽然语言不通,但做得很好。就是这样。
Attendees 4 1:20:47
하나하나 잘못했어요. 너무 이상해.
与会者 4 1:20:47 一步一步都做错了。太奇怪了。
Attendees 1 1:20:52
이상하게 넣었어. 하나가 수고했어요. 안녕.
与会者 1 1:20:52 奇怪地放置了。一个人辛苦了。再见。
clovanote.naver.com