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

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

断交换和遍历输出:

抽取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(){};

例子:

  1. class Person{
  2. private String name ; // 声明姓名属性
  3. private int age ; // 声明年龄属性
  4. public void setName(String n){ // 设置姓名 (快速set根get方法:鼠标右键 - Source - Generare Getters and Setters...)
  5. name = n ;
  6. }
  7. public void setAge(int a){ // 设置年龄
  8. if(a>=0&&a<=150){ // 加入验证
  9. age = a ;
  10. }
  11. }
  12. public String getName(){ // 取得姓名
  13. return name ;
  14. }
  15. public int getAge(){ // 取得年龄
  16. return age ;
  17. }
  18. public void tell(){
  19. System.out.println("姓名:" + this.getName() + ",年龄:" + this.getAge()) ;
  20. }
  21. };
  22. public class EncDemo05{
  23. public static void main(String arsgh[]){
  24. Person per = new Person() ; // 声明并实例化对象
  25. per.setName("张三") ; // 调用setter设置姓名
  26. per.setAge(-30) ; // 调用setter设置年龄
  27. per.tell() ; // 输出信息
  28. }

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

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

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

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

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

 
 

第三节 java 函数的封装方法 以及 访问封装内容的更多相关文章

  1. 第三节 java 函数

    1.函数的定义 1.方法就是一段可重复调用的代码段 2.方法的格式1: 访问修饰符 返回值类型 方法名(参数类型 参数1,参数类型 参数2){ //权限访问修饰符 : public protected ...

  2. Spark中Java函数的使用方法笔记

    1: map 函数map是对RDD中的每个元素都执行一个指定的函数来产生一个新的RDD. 任何原RDD中的元素在新RDD中都有且只有一个元素与之对应. 2: mapPartitions函数</p ...

  3. JAVA组成原理及使用方法编辑环境及实现过程

    JAVA组成原理一.由四方面组成:1.Java编程语言2.Java类文件格式3.Java虚拟机4.Java应用程序接口 当编辑并运行一个Java程序时,需要同时涉及到这四种方面.二.使用文字编辑软件: ...

  4. 【原】Java学习笔记008 - 方法(函数)

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 方法/函数 Met ...

  5. Java&Selenium 模拟键盘方法封装

    Java&Selenium 模拟键盘方法封装 package util; import java.awt.AWTException; import java.awt.Robot; import ...

  6. Java&Selenium控制滚动条方法封装

    Java&Selenium控制滚动条方法封装 package util; import org.openqa.selenium.JavascriptExecutor; import org.o ...

  7. Java ——对象 类 方法重载 构造方法 封装 内部类

    本节重点思维导图 快捷键 生成代码:alt+shift+s 提取变量:alt+shift+L 快速复制行:alt+ctrl+向上或向下的箭头 删除行:ctrl+d 类:对同一种事物共同属性和行为的抽象 ...

  8. 为何JAVA虚函数(虚方法)会造成父类可以"访问"子类的假象?

      首先,来看一个简单的JAVA类,Base. 1 public class Base { 2 String str = "Base string"; 3 protected vo ...

  9. [论文笔记] 一种Java遗留系统服务化切分和封装方法 (计算机学报, 2009)

    李翔,怀进鹏,曾晋,高鹏. 一种Java遗留系统服务化切分和封装方法. 计算机学报, 32(9), 2009, p1084-1815 (gs:5) 1. 本文研究从Java遗留系统中切分并封装出Web ...

随机推荐

  1. linux基础3

    vim编辑器 vim 操作命令 在命令模式下操作 pageup 往上翻页(重要指数****) pagedown 往下翻页(重要指数****) H 移动到屏幕首行 gg 移动光标到文档的首行(重要指数* ...

  2. laravel安装Excel安装不上

    1.生明版本号 composer require maatwebsite/excel 2.1我的PHP是7.0安装Excel得2.1 2.在composer.json中加入 "maatweb ...

  3. AutoMatic merge failed;fix conflicts and then commit the result.解决方法

    意思是: 冲突内容:合并冲突在 XXXX.DS_Store文件中 自动合并失败:修改冲突然后提交修改后的结果. <<<<<<<< HEAD 你写的代码 ...

  4. 廖雪峰网站:学习python函数—调用函数(一)

    # 调用函数 # 可以直接从Python的官方网站查看文档: # http://docs.python.org/3/library/functions.html#abs n = abs(100) # ...

  5. win8.1安装密钥

    https://zhidao.baidu.com/question/374064869043943484.html

  6. git拉取远程分支并创建本地分支

    本地分支推送至远程 git checkout local_branch git push origin local_branch:remote_branch 一.查看远程分支 使用如下Git命令查看所 ...

  7. TP5+jquery即点既改

    //表单 {volist name="date" id="v"}<tr id="{$v.id}"> <td>< ...

  8. lua 函数基础

    函数定义在前,调用在后 如果函数只有一个实参,并且此参数是一个字面字符串或者table构造式,那么可以省略() 例如 print "hello" unpack{1,2} print ...

  9. 水题系列二:PhoneNumbers

    问题描述: Phonenumbers 企业喜欢用容易被记住的电话号码.让电话号码容易被记住的一个办法是将它写成一 个容易记 住的 单词或 者短语 .例如 ,你 需要给 滑铁卢 大学打 电话时 ,可 以 ...

  10. Linux下切换使用两个版本的JDK

    Linux下切换使用两个版本的JDK 我这里原来已经配置好过一个1.7版本的jdk. 输出命令: java -version [root@hu-hadoop1 sbin]# java -version ...