一、封装的步骤

(1)所有属性私有化,使用private关键字进行修饰,private表示私有的,修饰的所有数据只能在本类中进行访问。

(2)对外提供简单的操作入口,也就是说以后外部程序要想访问age属性的话,必须通过这些简单的入口才能进行访问。

i.对外提供两个公开的方法,分别是set方法和get方法

ii.修改属性的话,就使用set方法;访问属性的话,就使用get方法

二、set方法的命名规范

public void setAge(int a){

  age = a;

}

三、get的方法的命名规范

public void setAge(int a){

  age = a;

}

四、注意点

(1)setter and getter方法没有static关键字

(2)有static关键字修饰的方法怎么调用:类名.方法名(实参);

(3)没有static关键字修饰的方法怎么调用:引用.方法名(实参);

举个例子,先写一个类,然后再调用它

package com.bjpowernode.java_learning;

​

public class User {

  //属于私有化

  private int age;

  //setter

  public void setAge(int a) {

    if (a<0 || a>150) {

      System.out.println("对不起您输入的年龄不合法");

      return;

    }else {

      age = a;

    }

  }

  //getter

  public int getAge() {

    return age;

  }

}

我们再编写函数来调用它

package com.bjpowernode.java_learning;

​

public class D38_object_encapsulation {

  public static void main(String[] args) {

    //闯将user对象

    User user = new User();

    user.setAge(1000);

    int age1 = user.getAge();

    System.out.println(age1);

    user.setAge(100);

    int age2 = user.getAge();

    System.out.println(age2);

  }

}

我们进行程序运行

快捷键:我们在编写一个类的时候,将各个private属性写好了之后,在空白处点击右键-源代码-生成getter和setter即可,自动生成

五、构造方法

1.构造方法又被称为构造函数、构造器、Constructor

2.构造方法语法结构:


[修饰符列表] 构造方法名(形式参数列表){

  构造方法体;

}

3.回顾普通方法的语法结构:

[修饰符列表] 返回值类型 方法名(形式参数列表){

  方法体;

}

4.对于构造方法来说,“返回值类型”是不需要指定的,并且也不能写void,只要写上void那么这个方法就成为了普通方法

5.对于构造方法来说,构造方法的方法名必须和类型保持一致

6.构造方法的作用是什么:

构造方法存在的意义在于,通过构造方法的调用,可以创建对象。

7.构造方法应该怎么调用?

普通方法是这样调用的的:方法修饰符中有static的时候:类名.方法名(实参);方法修饰符列表中没有static的时候:引用,方法名(实参列表)

new 构造方法名(实参列表)

8.构造方法执行调用之后,有返回值吗?

每一个构造方法执行结束之后都有返回值,但是这个“return 值;”这样的语句不需要写,构造方法结束的时候java程序自动返回值​。并且返回值类型是构造方法所在类的类型。由于构造方法的返回值类型就是类本身,所以返回值类型​不需要写。(我们可想而知为什么名称上要保持一致)

六、源码:

D38_object_encapsulation​.java

User.java

地址:

https://github.com/ruigege66/Java/blob/master/D38_object_encapsulation.java

https://github.com/ruigege66/Java/blob/master/User.java

2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

Java连载38-对象封装性格式、构造方法的更多相关文章

  1. Java基础_0303:封装性初步

    class Book { // 定义一个新的类 private String title; // 书的名字 private double price; // 书的价格 public void getI ...

  2. Java连载37-面向对象的封装性

    一.IDE上继续新建工程 1.在src目录下新建软件包:package机制后面再讲,目前先用着 2.给package命名一个名称:com.bjpowernode.java_learning 3.软件包 ...

  3. JAVA之旅(四)——面向对象思想,成员/局部变量,匿名对象,封装 , private,构造方法,构造代码块

    JAVA之旅(四)--面向对象思想,成员/局部变量,匿名对象,封装 , private,构造方法,构造代码块 加油吧,节奏得快点了 1.概述 上篇幅也是讲了这点,这篇幅就着重的讲一下思想和案例 就拿买 ...

  4. [改善Java代码]使用静态内部类提高封装性

    建议38: 使用静态内部类提高封装性 Java中的嵌套类(Nested Class)分为两种:静态内部类(也叫静态嵌套类,Static Nested Class)和内部类(Inner Class).内 ...

  5. -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口 区别 多态 包 访问权限 内部类 匿名内部类 == 与 equal

    java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型  也就是 ...

  6. Java10-java语法基础(九)——java的封装性

    Java10-java语法基础(九)——java的封装性 一.Java的三大特性:封装.多态.继承 封装:通过类封装对象的数据成员和成员方法,保证只有可信的类或者对象能够访问这些方法和数据成员,对不可 ...

  7. java面向对象之封装性

    面向对象的特征之一:封装和隐藏: 一.问题的引入: 当创建一个类的对象以后,可以通过“对象.属性”的方式,对对象的属性进行赋值.这里,赋值操作要受属性的数据类型和存储范围的制约.除此之外,没有其他制约 ...

  8. Java之封装性

    封装概述 面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改. 封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问.要访问该类的数据,必 ...

  9. Java学习:面向对象的三大特征:封装性、继承性、多态性之继承性

    面向对象的三大特征:封装性.继承性.多态性. 继承 继承是多态的前提 ,如果没有继承,就没有多态. 继承主要解决的问题就是:共性抽取. 继承关系当中的特点: 子类可以拥有父类的“内容” 子类还可以拥有 ...

随机推荐

  1. Saiku嵌入页面plugin=true效果自定义实现(二十七)

    Saiku嵌入页面使用 自定义实现 Plugin=true 效果 saiku嵌入页面plugin=true时数据不显示(plugin=false或者不设定plugin的值时数据显示正常)这个问题困扰了 ...

  2. hbase数据加盐(Salting)存储与协处理器查询数据的方法

    转自: https://blog.csdn.net/finad01/article/details/45952781 ----------------------------------------- ...

  3. 【转】oracle中的NULL、''(空字符串)以及'_'(空格)

    在Oracle中使用null,''(空字符串),'_'(空格)时,有没有遇到问题?产生疑惑? 1.NULL和''(空字符串)是一个意思 注:为了便于区分空字符串和空格,下面的示例均以'_'代表空格. ...

  4. 依赖注入在 dotnet core 中实现与使用:3 使用 Lazy<T> 延迟实例化

    有些对象我们并不想一开始就实例化,由于性能或者功能的考虑,希望等到使用的时候再实例化.考虑存在一个类 A, 它使用了依赖的类 B,在 A 中,只有某些不常用到的方法会涉及调用 B 中的方法,多数情况下 ...

  5. RandomAccessFile(),读写文件数据的API,以及复制文件操作

    package seday03;import java.io.File;import java.io.RandomAccessFile; import java.io.IOException; /** ...

  6. Oracle 去重后排序

    因项目需求,需要将查询结果,去重后,在按照主键(自增列)排序,百度一番,记录下来 DEMO SELECT * FROM (SELECT ROW_NUMBER() OVER(PARTITION BY S ...

  7. h5本地存储登录页面实现记住密码功能

    <!DOCTYPE html> <html> <head> <title></title> </head> <style ...

  8. 【LeetCode】58.最后一个单词的长度

    最后一个单词的长度 给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度. 如果不存在最后一个单词,请返回 0 . 说明:一个单词是指由字母组成,但不包含任何空格的字符串. 示例 ...

  9. 【LeetCode】650. 只有两个键的键盘

    只有两个键的键盘 最初在一个记事本上只有一个字符 'A'.你每次可以对这个记事本进行两种操作: 1.Copy All (复制全部) : 你可以复制这个记事本中的所有字符(部分的复制是不允许的). 2. ...

  10. [Go] 并发imap收信

    并发数太大会直接死,这里有时候需要多试几次 package main import ( "flag" "fmt" "io/ioutil" & ...