java 특징
- (접근 제한자) + 타입 + 변수명,함수명을 적는 문법
- 상수일 때만 final 키워드 기재
- 띄어쓰기(빈 공백)이 컴파일러에 큰 영향을 주지 않음
- 특정 문법에 꼭 소괄호( ) 작성, 문장 마침표처럼 세미콜론; 필수 기재
- 문자열 치환 java : `${var}`
- .length , .size 로 객체 갯수 리턴
int number = 10;
public long width = number;
private String name = "홍길동";
final String species = "HUMAN";
String age = (String)20;
swift 특징
- (접근제한자) + var변수, let상수를 먼저 필수 지정 후, 변수명 뒤에 :타입을 적는 문법
- python과 비슷하게 띄어쓰기(빈 공백)을 하나의 문자로 인식하기도 함. 초기화 등호 양쪽에 공백 둘다 있거나 둘다 없거나
- 형 추론에 의해서 타입,키워드 생략이 가능하면 생략하는게 많은 문법. 소괄호( ) 나, 세미콜론; 을 작성하지 않음
- 문자열 치환 swift : “\(var)”
- .count 로 객체 갯수 리턴
- Tuple 타입 존재.
var age:Int = 20
var age=30
fileprivate var width:Double = 150.0
let country:String = "KR"
let country="KR"
private let address = "Seoul"
java 함수, 클래스, 인터페이스 등 특징
java 접근 제한자 + class/interface ... + 클래스명/인터페이스명 + extends/implements {
- java 접근 제한자 + 리턴 타입/void + 함수명 ( 매개변수타입 매개변수명 ) throws {
- 생략이 거의 없음
public class UserVO extends UserSession {
public interface UserServiceImpl implements UserService {
public void readUserInfo() {
private String saveUser(UserVO uvo) throws Exception {
swift 함수, 클래스, 구조체, 구조체 확장, 프로토콜 등 특징
- class/struct/protocol ... + 클래스명/구조체명 + : 상속클래스/상속구조체 {
상속클래스에서 필요한 함수를 overriding 가능.
- 필요어노테이션/키워드 + func + 함수명 (매개변수명 : 매개변수 타입) {
- struct 구조체 내부 지역변수 value 값을 변경하는 함수의 맨 앞에는 mutating 키워드 필요...
- 기존에 제공되는 라이브러리나 클래스,구조체에 추가적인 기능을 넣어서 사용하려면 extension
- protocol은 interface,abstract class와 비슷. 무조건 받아서 재정의해야함. 골라쓰는게 아니라서 overriding이 붙지 않음.
- 생략할 수 있으면 거의 생략
- 매개변수에 '외부매개변수/내부매개변수' 별도 사용자화로 사용 가능. 외부매개변수 언더스코어로 생략 가능. 가능만하면 생략.
* 라이브러리 함수들은 지정된 외부매개변수 at: , contentOf: 존재
class UserVO { // 타입이 UserVO
class UserVO : UserSession { // 타입이 UserVO인데 UserSession으로 상속받음
struct UserService {
extension Double {
func readUserInfo() { // 매개변수가void 리턴타입이void
override func saveUser(uvo:UserVO) -> UserVO {
//상속받는 객체에 있는 함수를 오버라이딩, UserVO타입 uvo 매개변수, 리턴타입이 UserVO
* ❗️❓structure 기능과 사용
구조체 인스턴스는 값을 항상 넘기며, 클래스 인스턴스는 항상 참조를 넘겨줌.
이 의미는 서로 다른 작업의 종류에 적합하다는 의미.
프로젝트에 필요한 데이터 구조와 기능을 고려하여, 각각의 데이터는 클래스나 구조체로 정의하도록 구성해야 함.
class | structure |
copy of reference | copy of value |
reference 참조 주소값이 복사 | value가 복사됨. Call Stack에 만들어짐…? |
★ Swift guard 조건 부정 함수
if a = b { // if문에서 a = b가 true면 블록 안을 수행하지만
guard a =b else { // a = b false라면 블록 안을 수행
} // 예외처리 해주기
★ Swift for문
for row상수 in range범위 {
★ Swift 다중선택문if, switch는
초기 변수명 선언하고 바로 if,switch조건문 걸면서
변수명 호출 없이 초기화 가능.
★ Swift switch문 boolean이면 default 미사용
★ Swift Collection Type
Array : 정렬 Array<String> 을 줄이면 [String] 도 같은 표현
Set : 중복불가,순서X // java List는 중복허용,순서OK
Tuple : 타입 상관없음. 수정불가 // Object 같은건가? 파이썬…
Dictionary : Map
제네릭 : java와 동일
★ Rest parameter [Array로 취급] (갯수에 구애받지 않음)
Int… => Int를 여러개 사용할수잇다
★ Swfi에서는 어떤 타입 함수인지 부르는 방법 :
매개변수 타입명과 리턴타입명을 줄여서 부름
func hello(name:String) {
} // > String void 타입이다
func hello1(name:String, age:Int) -> String {
} // > String Int 타입에 String 타입이다
swift Optional
swift Closure
참고 문헌
'iOS' 카테고리의 다른 글
[Xcode] PickerView, TableView, reuse 정리 (0) | 2024.09.03 |
---|---|
[Xcode] UIView - Protocol, Delegate 정리 (0) | 2024.09.01 |
[Xcode] UIView 복습 (0) | 2024.09.01 |
[Xcode] UIView 정리 (0) | 2024.08.29 |
intro (0) | 2024.08.20 |