이 글의 내용은 객체지향 캡슐화의 세 가지 주요 기능을 소개하는 것인가요? 캡슐화 구현 방법(코드 예) 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
1. 포장이란? 그리고 캡슐화는 왜 필요한가?
일반적으로 멤버 변수에 일부 합법적이지만 불합리한 값을 할당할 수 있습니다. 이 경우 컴파일 단계와 실행 단계에서 오류가 보고되거나 프롬프트 정보가 제공되지 않습니다. 실제 상황과 일치하지 않습니다. 위의 문제를 방지하려면 멤버 변수의 합법성과 합리성을 보장하기 위해 멤버 변수를 봉인하고 패키지해야 합니다. 이 메커니즘을 캡슐화라고 합니다. 캡슐화는 클래스의 코드와 데이터가 외부 클래스에 의해 정의된 코드에 의해 무작위로 액세스되는 것을 방지하는 보호 장벽으로 생각할 수 있습니다. 이 클래스의 코드와 데이터에 액세스하려면 엄격한 인터페이스 제어를 통과해야 합니다.
2. 캡슐화하는 방법은 무엇입니까?
(1) 멤버 변수를 비공개하고 private 키워드를 사용하여 수정합니다.
(2) 공개 get 및 set 메소드를 제공하고 메소드 본문에서 합리적인 값을 판단하고 public 키워드를 사용하여 수정합니다. (3) 합리적인 값을 판단하기 위해 구축 메소드에서 set 메소드를 사용합니다.
3 예는 다음과 같습니다. /*Person.java*/
/* 编程实现Person类的封装 */ public class Person{ //1.私有化成员变量,使用private关键字修饰 private String name; private int age; private String country; //使用static关键字修饰成员变量表示提升为类层级只有一份被所有对象共享 //public static String country; //3.在构造方法中调用set方法进行合理值的判断 public Person(){ } public Person(String name, int age, String country){ setName(name); setAge(age); setCountry(country); } //2.提供公有的get和set方法,在方法体中进行合理值的判断 public String getName(){ return name; } public void setName(String name){ this.name = name; } public int getAge(){ return age; } public void setAge(int age){ if(age > 0 && age < 150){ this.age = age; }else{ System.out.println("年龄不合理!!!"); } } public String getCountry(){ return country; } public void setCountry(String country){ this.country = country; } public void show(){ System.out.println("我是" + getName() + ",今年" + getAge() + "岁了,来自" + getCountry() + "!"); } //自定义成员方法描述吃饭的行为 public void eat(String food){ System.out.println(food + "真好吃!"); } //自定义成员方法描述娱乐的行为 public void play(String game){ System.out.println(game + "真好玩!"); } }
위 내용은 객체지향 캡슐화의 세 가지 주요 특징은 무엇입니까? 캡슐화 구현 방법(코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

Dreamweaver Mac版
시각적 웹 개발 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.
