zoukankan      html  css  js  c++  java
  • 第三节 java 函数的封装方法 以及 访问封装内容

    从我们的选择排序和冒泡排序里我们可以看到有很多相同的代码,

    我们 可以把这些相同的代码提取出来封装为方法;比如我们的判

    断交换和遍历输出:

    抽取1: public static void PanDuan(int[] arr,int a,int b)

        if(arr[a] > arr[b]){

    int temp = arr[a];

    arr[a] = arr[b];

    arr[b] = temp;

    }

    抽取2:

    public static void BianLi(){

    System.out.print("{");

    for(int b = 0;b < arr.length;b++){

    if(b != arr.length-1){

    System.out.print(arr[b]+",");

    }else{

    System.out.print(arr[b]+"}");

    }

    }

    }

    在整个java中,对于封装的访问给出了一个明确的原则,此原则必须遵守。

    否则,因为属性或者方法被封装了,访问不了,会出错。

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

    例如,现在有一个属性:private string name;

    Setter():public void setName(String n){};

    Getter():public String getName(){};

    例子:

    复制代码
    class Person{
    private String name ;    // 声明姓名属性 
    private int age ;    // 声明年龄属性
    public void setName(String n){    // 设置姓名   (快速set根get方法:鼠标右键  -  Source - Generare Getters and Setters...)
    name = n ;
    }
    public void setAge(int a){    // 设置年龄
    if(a>=0&&a<=150){    // 加入验证
    age = a ;
    }
    }
    public String getName(){    // 取得姓名
    return name ;
    }
    public int getAge(){    // 取得年龄
    return age ;
    }
    public void tell(){
    System.out.println("姓名:" + this.getName() + ",年龄:" + this.getAge()) ;
    }
    };
    public class EncDemo05{
    public static void main(String arsgh[]){
    Person per = new Person() ;    // 声明并实例化对象
    per.setName("张三") ;    // 调用setter设置姓名
    per.setAge(-30) ;    // 调用setter设置年龄
    per.tell() ;    // 输出信息
    }

    以上代码只是可以访问封装的属性,但是并没有加入到检测的措施。

    如果年龄设置有问题,则不应该为属性赋值。

    应该在哪个方法中加入检验呢?

    .setter()中加入检验;(判断语句)

    .getter()只是简单的把数据取出。

     
  • 相关阅读:
    spring mvc配置完后实现下载功能
    表单中Readonly和Disabled的区别(转载)
    EL表达式中fn函数 (转载)
    Spring mvc中@RequestMapping 6个基本用法小结(转载)
    web开发,关于jsp的常见问题,重复提交,防止后退。
    JQuery页面加载
    解决 spring mvc 3.0 结合 hibernate3.2 使用<tx:annotation-driven>声明式事务无法提交的问题(转载)
    数据库设计原则(转载)
    dhtmlxTree介绍(转载)
    主键索引
  • 原文地址:https://www.cnblogs.com/xiaoshuaidiboke/p/7143451.html
Copyright © 2011-2022 走看看