본문 바로가기

수업내용91

20230807 Kotlin Constructor package com.example.hellokotlin class Human{ val name:String //String type을 전달 받는 생성자 constructor(name:String){ this.name=name } } fun main(){ val h1=Human("뉴진스") } 위와 같이 class에서 지정한 type을 생성자의 인자로 전달을 해주어야지 오류가 발생하지 않는다. class Human2 constructor(name:String){ val name:String init { this.name=name } } 위의 Human1 Class를 Human2 Class와 같은 형태로도 정의 할 수 있다. 이를 더 줄이면 아래와 같이 코드를 작성할 수 있다. class Human3 co.. 2023. 8. 7.
20230803 Kotlin package com.example.hellokotlin fun main(){ val mem:MutableMap = mutableMapOf() //Map에 데이터 넣는 방법1 mem.put("num", 1) mem.put("name", "김구라") mem.put("isMan", true) //수정가능한 Map val mem2 = mutableMapOf() //Map에 데이터 넣는 방법2 mem2["num"]=2 mem2["name"]="원숭이" mem2["isMan"]=true //MutableMap이기 때문에 수정가능 mem["num"]=999 } 어떤 데이터를 index로 관리를 하고 ReadOnly로 사용하고 싶다면 List를 사용하면 된다. fun main(){ val names:List = li.. 2023. 8. 3.
20230801 Kotlin 하위패키지에 Sender라는 Class를 만들어 send라는 메서드를 만들어주고 Step08_UseJava.kt에서 send메서드를 호출하여 사용해 보았다. Kotlin 파일에서 Java를 사용할 수 있는 것을 배울 수 있었다. //키보드로 부터 입력 받을 수 있는 객체 생성 val scan = Scanner(System.`in`) Kotlin에서는 Scanner Class를 사용할 때 (System.`in`)을 사용해야 한다. in을 문자열로 인식하기 때문에 백틱으로 in을 감싸서 사용해주면된다. //키보드로 부터 입력 받을 수 있는 객체 생성 val scan = Scanner(System.`in`) print("입력:") val msg=scan.nextLine() println("입력 받은 내용 : .. 2023. 8. 1.
20230731 Kotlin Kotlin에서 모든 Class는 기본적으로 final Class를 가진다. 만약 하나의 Class를 상속받거나 하려면 open이라는 예약어를 사용하면 된다. 이렇게 오류가 나지만 Phone Class에 open을 붙여주면 오류가 사라진다. package com.example.hellokotlin /* 클래스 선언시 기본값을 상속을 받지 못하게 되어 있다. 마치 java에서 final class Phone{} 처럼 상속을 받을 수 있게 하려면 open이라는 예약어를 붙여준다. */ open class Phone{ fun call(){ println("전화를 걸어요!") } } class HandPhone : Phone(){ //Phone 클래스를 상속 받기 fun mobileCall(){ println(.. 2023. 8. 1.
20230731 Kotlin Kotlin에서 모든 Class는 기본적으로 final Class를 가진다. 만약 하나의 Class를 상속받거나 하려면 open이라는 예약어를 사용하면 된다. 이렇게 오류가 나지만 Phone Class에 open을 붙여주면 오류가 사라진다. package com.example.hellokotlin /* 클래스 선언시 기본값을 상속을 받지 못하게 되어 있다. 마치 java에서 final class Phone{} 처럼 상속을 받을 수 있게 하려면 open이라는 예약어를 붙여준다. */ open class Phone{ fun call(){ println("전화를 걸어요!") } } class HandPhone : Phone(){ //Phone 클래스를 상속 받기 fun mobileCall(){ println(.. 2023. 7. 31.
20230728 Kotlin 어제 배운내용중에 init 복습. init 블럭은 대표 생성자의 일부이다. class Ship constructor(){ //init 블럭은 대표 생성자의 일부이다. init { //객체를 생성하는 시점에 초기화 하고 싶은 작업이 있으면 여기서 한다. println("Ship클래스의 init") } } Ship( )이 호출되면 init블럭이 먼저 호출이 된다. constructor예약어의 생략 가능 class Ship2 (){ init { //객체를 생성하는 시점에 초기화 하고 싶은 작업이 있으면 여기서 한다. println("Ship2클래스의 init") } } 생성자의 인자로 전달 받을게 없으면 ( )도 소괄호도 생략 가능 //생성자의 인자로 전달 받을게 없으면 ()소괄호도 생략이 가능하다. clas.. 2023. 7. 28.
20230727 Android 위에 캡쳐본 처럼 우상단"옵션메뉴"를 만들고 싶으면 onCreateOptionMenu()메서드를 오버라이딩해서 Menu를 구성하면 된다. @Override public boolean onCreateOptionsMenu(Menu menu) { //res/menu/menu_main.xml문서를 활용해서 메뉴 아이템 구성하기 getMenuInflater().inflate(R.menu.menu_main, menu); return true; } menu_main.xml의 코드를 살펴보면 아래와 같다. 직접 드래그를 통해서 다른 Menu들도 추가할 수 있다. showAsAciton은 ActionBar에 보이게 할 것인지 말것인지를 설정해주는 것이다. never외에도 always, collapseActionView,.. 2023. 7. 28.
20230727 Kotlin Function Java 에서는 public void a(){} Kotlin에서는 fun a( ):Unit{ } or fun a( ){ } 식으로 함수를 만든다 Kotlin에서 Unit은 원시 type이라고 지칭하고 Java의 void와 비슷한 역할을 한다. 함수명( ):return type{ } 이름이 없는 함수를 만들어서 그 참조값을 변수에 담을 수도 있다. var b = fun(){} var c = fun():Unit{} 위의 함수를 살펴보면 대입연산자 " = " 우측에 있는 함수는 return type이없는(Unit)함수이며 전달해야하는 인자는 없는 상태이다. 매개변수가 있는 함수와 없는 함수는 다른 함수로 판단한다. var c = fun():Unit{} c = fun(num:Int){} 함수의 타입이 동일하려면.. 2023. 7. 27.
20230726 Android Fragment 새로운 모듈을 만들어주었다. 모듈의 이름은 Fragment Fragment(이하 프래그먼트)는 FragmentActivity내의 어떤 동작 또는 사용자 인터페이스의 일부를 나타낸다. 여러 개의 프래그먼트를 하나의 액티비티에 결합하여 창이 여러 개인 UI를 빌드할 수 있다. 위와 같은 경우에 프래그먼트를 사용하지 않았을 경우에는 내용물을 제외한 기본적인 틀을 복사해서 사용해야 겠지만 프래그먼트를 이용하면 프래그먼트 하나를 통해 여러개의 Activity에서 사용할 수 있게 된다. 화면이 전환이 될때 하나의 Activity의 여러개의 프래그먼트를 사용해서 클라이언트가 느낄 때에는 전체적인 화면이 전환되는 느낌이 들지만 실은 프래그먼트만 바뀌게 해서 화면전환이 되는 것 처럼 사용할 수도 있다. 사용방법👉👉👉 p.. 2023. 7. 26.