封装

将类的某些信息隐藏在类内部,不允许外部程序直接访问
通过该类提供的方法来实现对隐藏信息的操作和访问
隐藏对象的信息
留出访问的接口

特点:

1 只能通过规定的方法访问数据
2 隐藏类的实例细节,方便修改和实现

Java封装的意义 防止使用者错误的修改系统的属性
提高系统的独立性 提高软件的可重用性

封装实现步骤

第一步 修改属性的可见性 设为private 只能当前类内被访问
第二步 设置开发接口 创建getter/setter方法 设为public用于属性的读写
第三步 在getter/setter方法中加入属性控制语句 对属性值的合法性进行判断

案例

public class CatTest {public static void main(String[] args) {//实例化对象Cat one = new Cat();one.setName("凡凡");one.setMonth(1);System.out.println(one.getName());if(one.getMonth()!=0) {System.out.println("年龄:"+one.getMonth());} return;}
}

被调用的类代码

package com.imooc.animal;
/*** 宠物猫类* @author Administrator**/
public class Cat {//修改属性的可见性---private 限定只能在当前类内访问private String name; //昵称private int month;  //年龄//创建get/set方法//在get/set方法中添加对属性的限定public void setName(String name) {this.name = name;}public String getName() {return "我是一只名叫:"+name;}public void setMonth(int month) {if(month<=0) System.out.println("输入信息错误,宠物猫的年龄必须大于0");elsethis.month = month;}public int getMonth() {return month;}
}

跨包调用

加载导包 列如: import com.imooc.animal.*;//表示该包的所有类
import com.imooc.animal.Cat;//加载指定包的类 针对性
然后实例化 即可调用Cat cat = new Cat();

还有一种加载方式 比如在主方法中直接加载 (太麻烦了)
com.imooc.animal.Cat cat = new com.imooc.animal.Cat();

如果导入的包里出现相同类名 同类名冲突问题
这时候要使用完全限定名称. com.imooc.animal.Cat cat = new com.imooc.animal.Cat();

static关键字

static 表示静态信息 用static修饰的成员叫静态成员或类成员
无论这个类实例化多少 对于static修饰的成员都共用一个存储空间
1 类对象共享
2 类加载时产生,消费时释放,生命周期长
静态成员的访问方法: 1对象.成员 2类.成员
public static int price;//售价
当static加属性前面的时候 称叫静态属性\类属性
public staic void eat(){}
当static添加成员方法前面变成一个静态方法\类方法
调用的话 推荐用类名.静态成员
类class不可以加static 不可以静态类
方法中局部变量也是不可以添加static(这个修饰符只能加final)

普通成员方法可以直接访问类中静态成员

静态方法不能直接访问同一个类的非静态成员,只能调用同一个类中静态成员
如果非要调用非静态的成员 只能通过对象实例化后 对象.成员方法的方式访问

#静态方法不能使用this

static{}静态代码块最优先执行=>构造代码块{}=>构造方法
请注意 静态代码块 实例不管多少都只会被执行一次
而构造代码块每次实例化的时候都会执行一次
静态代码块跟构造代码块 赋值及调用其他方法原则跟前面静态方法一样的

封装概念特点 跨包调用static关键字相关推荐

  1. 【JavaSE】类和对象 (二) —— 封装、包以及 static 关键字

    目录 1. 封装 1.1 封装的概念 1.2 访问限定符 2. 包 2.1 包的概念 2.2 导入包中的类 2.3 自定义包 2.3.1 包的基本规则 2.3.2 创建一个包 2.4 包访问权限--d ...

  2. -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口

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

  3. java:static关键字

    static关键字主要有4种使用情况:成员变量,成员方法,代码块和内部类. 1.成员变量 虽然java中没有全局的概念,但可以通过static关键字来达到全局的效果.java类型提供了两种类型的变量, ...

  4. java static void_java中static关键字

    一.static关键字的介绍 关于static关键字,我们最是在一个类的主方法中见到的,如"public static void main(String[] args)",stat ...

  5. Java:封装的概念,UML类图,构造方法,this关键字,static关键字,方法重载,包package

                     oop三大特性:封装,继承,多态 oop一般指面向对象程序设计(一种计算机编程架构) 一.封装的概念:    将东西包在一起,然后以新的完整形式呈现出来       ...

  6. JAVA SE、EE、ME,JRE、JDK,基本数据类型,访问修饰符、函数、封装的概念、UML类图、构造方法、this关键字、static关键字、方法重载、方法重写、包(packahe)

    运行第一个JAVA程序: 这里使用的开发环境是eclipse,新建一个java工程,然后可以看到src这个是存放java代码的地方,然后在src文件右击新建一个class(类),然后可以看到下图,同样 ...

  7. static关键字、块、包机制、封装、继承、final关键字

    1.srtatic关键字 ​ 被static 关键字修饰的的内容为静态的内容.static不可以修饰局部变量,只能修饰成员变量. 1.1静态变量 static 成员变量-->静态变量|类变量 成 ...

  8. (1)封装 (2)static关键字 (3)继承

    1.封装(重中之重) 1.1 基本概念 通常情况下,可以在测试类中给成员变量进行赋值,当给定的数值合法但不合理时,无论是编译还是运行阶段都不会报错或给出提示,此时与现实生活不符. 为了避免上述问题的发 ...

  9. static关键字和块和包机制和继承super

    static关键字 static:关键字静态的 被static关键字修饰的内容为静态内容 成员是属于对象的跟随对象使用,应为成员在对象的堆内存空间中,static修饰的静态的内容是属于类,可以随类使用 ...

最新文章

  1. DFT,DTFT,DFS,FFT之间的关系以及序列补零和插值对频域的影响
  2. [云炬创业基础笔记]第七张创业团队测试4
  3. [18/11/29] 继承(extends)和方法的重写(override,不是重载)
  4. Python:一文让你彻底理解numpy中axis=-1/0/1/2... [实例讲解:np.argmax(axis= -1 0 1 2) np.sum(aixs= -1 0 1 2)]
  5. Python中文编程
  6. C# 16进制转10进制 16进制字符串转换
  7. 移动平均法又称滑动平均法、滑动平均模型法(Moving average,MA)
  8. 飞行的小鸟(Flybird)C语言小游戏C++简单小程序超简单
  9. 解决其他浏览器能上网谷歌浏览器不能上网
  10. 有关数据库sql语句基础小白初学者可学(持续更新)
  11. 微信小程序小技巧系列《一》幻灯片,tab导航切换
  12. 炽热如初 向新而生|ISC2022 HackingClub白帽峰会圆满举办!
  13. Python凯撒密码解密
  14. Kafka不丢失数据与不重复消费数据
  15. MOSFET的SOA
  16. 地铁框架保护的原理_浅析地铁直流框架保护原理及应急处置
  17. 最简单启动vue前端项目
  18. 宅急送项目的第七天笔记!(JBPM工作流和介绍 -- 权限管理模型)
  19. 防毒墙 防火墙的区别
  20. Unity中的射线检测

热门文章

  1. Visio中输入希腊字母
  2. iphone计算机如何打字速度,原来iPhone如此强大!四大隐藏技能让你打字不再龟速...
  3. 华为路由器/交换机配置telnet,ssh远程登录
  4. UBUNTU 入门全程导用
  5. Qt连接mysql数据库、数据库开启远程连接,实现QQ登录、注册、修改密码功能(已实现),后续继续更新中...
  6. Android百度地图SDK 导航初始化和地图初始化引起的冲突
  7. 总结下利用python赚钱的方法,在闲余时间月赚1000~5000不等
  8. 计算机快捷键 还原默认值,bios怎么恢复出厂设置 恢复bios出厂默认值的方法
  9. 计算机行业还能火多久?
  10. 织梦调用图集第一个图片地址