文章目录

  • 前言
  • 一、Java的类的定义
  • 二、Java的类使用
    • 小结
  • 三、封装
    • 1.绪论
      • 一.封装的好处
      • 二.private
    • 2.封装的定义
    • 3.封装小结
  • 总结

前言

不知不觉已经五月7号了,明天就是母亲节哦,记得给妈妈一个小惊喜哦,步入正题,让我们来了解一下Java中一个非常重要的部分——封装

一、Java的类的定义

首先我们要明确类的定义步骤

现在我们对知识的了解没那么深入3.4.5.都不需要了解
接下来我们来看代码实现
我们可以定义以一个学生类

描述学生的属性,然后构造学生的动作
可以根据自己的需求自己定义

二、Java的类使用


代码实现为

public class Student {int age;String name;boolean sex;String add;
}
public class lei03 {public static void main(String[] args) {Student s=new Student();System.out.println(s.age);System.out.println(s.name);System.out.println(s.add);System.out.println(s.sex);}
}

这样我们就相当于在堆内存里面new了一个空间存储Student类了
接下来是他的输出结果

"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=64402:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day09 lei03
0
null
null
false

系统开始自动给定义的对象赋值,赋值规则如下

我们也可以直接修改Student类中的对象的数据

public class lei03 {public static void main(String[] args) {Student s=new Student();s.age=18;s.name="丽丽";s.add="江西";s.sex=false;System.out.println(s.age);System.out.println(s.name);System.out.println(s.add);System.out.println(s.sex);}
}

输出结果如下

"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=64515:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day09 lei03
18
丽丽
江西
false

接下来我们还可以在类中定义方法

public class Student {int age;String name;boolean sex;String add;public void eat(){System.out.println("兰州拉面");}public void doing(){System.out.println("睡觉");}public int add(int a,int b){return a+b;}
}

注意这和我们在main方法中定义方法不一样,我们不能使用static
在main中定义方法则需要这样写

package Test;import javax.swing.*;public class fangfa1 {public static void main(String[] args) {add(1,2);add(1.0,2.0);add(1,2,3);}public static void add(int x,int y){System.out.println(x+y);}public static void add(double x,double y){System.out.println(x+y);}public static void add(int x,int y,int z){System.out.println(x+y+z);}
}

回到类中定义方法,我们去创建一个新对象

public class lei03 {public static void main(String[] args) {Student s=new Student();
//       s.age=18;
//       s.name="丽丽";
//        s.add="江西";
//       s.sex=false;//        System.out.println(s.age);
//        System.out.println(s.name);
//        System.out.println(s.add);
//        System.out.println(s.sex);s.eat();s.doing();int a=s.add(5,6);System.out.println(a);}
}

运行结果如下

"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=64646:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day09 lei03
兰州拉面
睡觉
11

小结

接下来我们拓展一下

我们的类都是写在javabean中的,不能写在main方法中


三、封装

1.绪论

一.封装的好处

二.private

2.封装的定义

那么我们直接上代码吧

package com.itheima.doml.girlfriend;public class girlfriend01 {private int age;private String name;public String getName(){return name;}public void setName(String n) {name=n;}public int getAge(){return age;}public void setAge(int s){age=s;}public void eat(){System.out.println("吃饭");}
}

其中setName为赋值通道
getName为获取通道
age和name的操作类似

接下来我们new一个对象来调用这个类看看

package com.itheima.doml.girlfriend;public class test {public static void main(String[] args) {girlfriend01 g=new girlfriend01();
//        g.eat();
//        g.setAge(18);
//        g.setName("小月月");System.out.println(g.getAge());System.out.println(g.getName());}
}

他的大部分操作和平时类里面定义方法类似
接下来运行看看结果

"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=65305:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day10 com.itheima.doml.girlfriend.test
0
null

这些是系统默认赋的值
和类里面定义方法一样,我们也可以修改其中的值
代码如下

package com.itheima.doml.girlfriend;public class test {public static void main(String[] args) {girlfriend01 g=new girlfriend01();g.eat();g.setAge(18);g.setName("小月月");System.out.println(g.getAge());System.out.println(g.getName());}
}

运行试试

"C:\JetBrains\IntelliJ IDEA 2019.2.4\jbr\bin\java.exe" "-javaagent:C:\JetBrains\IntelliJ IDEA 2019.2.4\lib\idea_rt.jar=65335:C:\JetBrains\IntelliJ IDEA 2019.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\IdeaProjects\heima169work\out\production\day10 com.itheima.doml.girlfriend.test
吃饭
18
小月月

这下子我们将里面的变量都修改成我们想要的结果了

3.封装小结

总结

封装为Java中非常重要的部分,对此我也是仅仅发表自己个人的浅薄理解,希望以后能够慢慢完善,深入理解
最后祝大家天天开心,生活快乐

浅谈Java的类和封装相关推荐

  1. 小浩浅谈Java三特性(封装,继承,多态)

    1.封装,什么是封装,谈谈自己对封装的理解,封装就是将类的信息(比如说类的属性)隐藏在类的内部,不允许外部程序直接访问.此时就要提到一个关键字private,他是一个权限修饰符,可以用来修饰成员(变量 ...

  2. java什么是枚举_【JAVA】浅谈java枚举类

    一.什么情况下使用枚举类? 有的时候一个类的对象是有限且固定的,这种情况下我们使用枚举类就比较方便? 二.为什么不用静态常量来替代枚举类呢? public static final int SEASO ...

  3. java枚举后面括号是什么意思_浅谈java枚举类

    >>> 学习交流群 < < < 一.什么情况下使用枚举类? 有的时候一个类的对象是有限且固定的,这种情况下我们使用枚举类就比较方便? 二.为什么不用静态常量来代替枚 ...

  4. java接口与类相同不同_浅谈java的接口和C++虚类的相同和不同之处

    C++虚类相当于java中的抽象类,与接口的不同之处是: 1.一个子类只能继承一个抽象类(虚类),但能实现多个接口 2.一个抽象类可以有构造方法,接口没有构造方法 3.一个抽象类中的方法不一定是抽象方 ...

  5. 浅谈Java多线程机制

    浅谈Java多线程机制 (-----文中重点信息将用红色字体凸显-----) 一.话题导入 在开始简述Java多线程机制之前,我不得不吐槽一下我国糟糕的IT界技术分享氛围和不给力的互联网技术解答深度. ...

  6. java 中的单元测试_浅谈Java 中的单元测试

    单元测试编写 Junit 单元测试框架 对于Java语言而言,其单元测试框架,有Junit和TestNG这两种, 下面是一个典型的JUnit测试类的结构 package com.example.dem ...

  7. 浅谈 Java Printing

    浅谈 Java  Printing 其实怎么说呢?在写这篇博文之前,我对java printing 可以说是一无所知的.以至于我在敲文字时, 基本上是看着api文档翻译过来的.这虽然看起来非常的吃力, ...

  8. java对象头_浅谈java对象结构 对象头 Markword

    概述 对象实例由对象头.实例数据组成,其中对象头包括markword和类型指针,如果是数组,还包括数组长度; | 类型 | 32位JVM | 64位JVM| | ------ ---- | ----- ...

  9. 浅谈Java中的Set、List、Map的区别

    就学习经验,浅谈Java中的Set,List,Map的区别,对JAVA的集合的理解是想对于数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操 ...

  10. 浅谈Java网络编程之Socket (2)

    <浅谈Java网络编程之Socket (1)>中我们已经和大家说到客户端的网络编程,下面和大家分享的是服务器的实现代码. import java.net.*; import java.io ...

最新文章

  1. struts2框架从数据库批量取得数据集并在前台页面循环显示
  2. 【数据库】将Excel导入达梦数据库,并执行表合并
  3. C++Builder中开发Activex
  4. 关于JUnit5 你必须知道的(一) JUnit5架构和环境搭建
  5. SAP CRM里是如何检测一个BP是否存在的 - FM BP_CENTRALPERSON_GET
  6. NodeJs-- 新建项目实例
  7. android java 调试快捷键_Android Studio 代码页跳界面 /java和XML快速切换技巧
  8. 练习4-11 统计素数并求和(20 分)
  9. 「ruby/MiniMagick」用MiniMagick处理图片
  10. SDOI2010 代码拍卖会
  11. iOS底层探索之多线程(六)—GCD源码分析(sync 同步函数、async 异步函数)
  12. 台电 平板电脑 html,颜值与功能兼备 台电X6 Pro二合一平板评测
  13. Microsoft .NET Framework 4 安装 1603错误的解决
  14. 腾讯云TRTCCalling实时音视频说明文档
  15. Winform UI界面设计例程——侧边框栏折叠
  16. 腾讯公布员工数据:超 30 岁员工占近六成
  17. 【博闻强记】java来发送邮件
  18. unity3D多点测量、多边形面积测量
  19. 【第九章】vim程序编辑器
  20. unity 创建自己的像素地图 TileMap

热门文章

  1. 数据库设计——概念模型
  2. 【汇编语言】emu汇编软件破解注册码
  3. STM32制作FLASH字库
  4. 20194307肖江宇Exp-4 恶意代码分析
  5. ElasticSearch三种分页方式以及各优缺点(一文知道如何抉择)
  6. android模拟器中关闭应用进程
  7. 前端性能优化实践:让视频加载也“懒”一点
  8. 计算机网络中计算机资源管理器,计算机基础知识:资源管理器的使用
  9. 数据中心加湿系统计算及方法探讨【新规范加湿方式对比及计算分析】
  10. Qt 菜单栏、工具栏、状态栏、浮动窗口、核心部件