努力提高认知层次

时临孤岛图,拭目望蓬莱。 空山无人处,水流花自开。
正在加载My blog page站点
皓天舒白日,灵景耀神州。 列宅紫宫里,飞宇若云浮。 峨峨高门内,蔼蔼皆王侯。 自非攀龙客,何为歘来游。 被褐出阊阖,高步追许由。 振衣千仞冈,濯足万里流。

封装性

 

 

 

 

封装就是保护内容,保证某些属性或方法可以不被外部看见,而在内部自己去处理。

 

class Person{

String name;

int age;

public void tell(){

System.out.println(姓名:+name+年龄:+age);

}

}

 

public class EncDemo01{

public static void main(String[] args){

Person per=new Person();

per.name=”张三”;

per.age=-30;

per.tell();

}

}

代码上没问题但是从实际出发,以上代码不符合要求。

 

实现封装

为属性封装:private属性类型 属性名称;

为方法封装:private 方法返回值 方法名称(参数列表){}

class Person{

private String name;

private int age;

public void tell(){

System.out.println(姓名:+name+年龄:+age);

}

}

 

public class EncDemo01{

public static void main(String[] args){

Person per=new Person();

per.name=”张三”; //错误无法访问封装属性

per.age=-30; //错误无法访问封装属性

 

per.tell();

}

}

 

访问封装内容

 

被封装的属性如果需要被访问,则需要编写setter以及getter方法完成。

如:private String name;

Setter(设置)public void setName(String n){} //用于属性赋值,命名规则将属性首字母大写并在前加上Set或者Get

Getter(取得)public void getNmae(){} //用于获取属性的值

class Person {

private String name;

private int age;

public void tell() {

System.out.println("姓名:" + getName() + ",年龄:" + getAge());

}

public String getName() {

return name;

}

public void setName(String n) {

name = n;

}

public int getAge() {

return age;

}

public void setAge(int a) {

age = a;

}

}

加入验证

 

Setter方法中加入验证

可以在setter方法中对设置的内容进行验证。

public void setAge(int a) { // 设置年龄

if (a >= 0 && a < 150) { // 在此处加上验证代码

age = a;

}

}

如下:

package com.stxy.demo0308;

import java.util.Scanner;

public class Test1 {

public static void main(String[] args) {

Scanner in=new Scanner(System.in);

Person pr=new Person();

pr.setName(in.next());

pr.setAge(in.nextInt());

pr.tell();

}

}

class Person{

private String name;

private int age;

public void tell(){

System.out.println("姓名:"+getName()+"年龄:"+getAge());

}

public int getAge() {

return age;

}

public void setAge(int a) {

if(a>=0&&a<=150) {

age=a;

}

}

public String getName() {

return name;

}

public void setName(String n) {

name=n;

}  

}

posted on 2022-12-14 13:04  远枝  阅读(14)  评论(0编辑  收藏  举报