JAVA的对象和封装及static与final的用法(详解)
一:软件出现的目的
1:用计算机的语言描述现实世界
2:用计算机解决现实世界的问题
编程思维: 使用面向对象的思想(描述)面向对象的世界 (符合人类的思维习惯)
二:面向对象设计和开发程序的好处
1:符合人类的思维习惯
2:交流更加流畅
2:可维护性高(方便修改代码)
3: 提高设计和开发效率
三:面向对象的三大特性
四:从现实中抽象出类分三步:
1. 找出它的种类 2. 找出它的属性 3. 找出它的行为
在编程中的应用:
1:找出名词确定类、属性 eg: (确定类) class Dog{} (确定属性)String name="小黑"; String Strain="拉布拉多"
2:找出动词确定方法 eg:(进食方法) public void eat (){ //省略代码 }
3:剔除与业务无关的属性和方法
五:实现封装的步骤
1:画类图:

类图的作用:1:用于分析和设计“类”
2:直观,容易理解
2:封装的概念:
封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问
3:编写代码实现封装
1:修改属性的可见性 (设为private)
2:创建公有的getter/setter方法 (用于属性的读写)
3:在getter/setter方法中加入属性控制语句 (对属性值的合法性进行判断)
【代码示例】
1 public class Dog {
2 private String name;//昵称
3 private int health;//健康值
4 private int love;//亲密度
5 private String strain;//品种
6
7 public Dog() {
8 }
9
10 public String getName(){
11 return name;
12 }
13 public void setName(String name){
14 this.name=name;
15 }
16 public int getHealth(){
17 return health;
18 }
19 public void setHealth(int health){
20 if(health>100||health<0){
21 this.health=40;
22 System.out.println("健康值应该在0到100之间,默认值是40");
23 }else{
24 this.health=health;
25 }
26 }
27 public int getLove(){
28 return love;
29 }
30 public void setLove(int love){
31 this.love=love;
32 }
33 public String getStrain(){
34 return strain;
35 }
36 public void setStrain(String strain){
37 this.strain=strain;
38 }
39 public void print(){
40 System.out.println("宠物的自白");
41 System.out.println("我的名字叫"+name+",健康值是"+health+",和主人的亲密度是"+love+",我是一只"+strain);
42 }
44 }
4:封装的好处:
(1):隐藏类的实现细节
(2):只能通过规定方法访问数据
(3):方便加入控制语句
(4):方便修改实现
六:访问成员变量及方法

1:static的作用:
(1)static 可以用来修饰属性,方法和代码块,称为静态变量,静态方法和静态代码块
(2)由static 修饰的属性和方法,可以直接通过类名.属性 或 类名.方法来进行调用
(3)由static 修饰的代码块,在运行时,程序默认自动调用,且优先于构造方法和普通方法;若类中有多个代码块,则按照静态代码块顺序依次执行
2:final的作用:
(1)final 可修饰类,属性,和方法
(2)当final 修饰一个类时,该类成为最终类,无法被继承。简称为“断子绝孙类”。
(3)当使用final修饰方法时,这个方法将成为最终方法,无法被子类重写。但是,该方法仍然可以被继承。
(4)当final修饰属性(变量)时,则该属性为常量,其固定值不变,该值无法修改
【示例】

JAVA的对象和封装及static与final的用法(详解)的更多相关文章
- java中的Static、final、Static final各种用法详解
前言 对Static.final.Static final这几个关键词熟悉又陌生?想说却又不知怎么准确说出口?好的,本篇博客文章将简短概要出他们之间的各自的使用,希望各位要是被你的面试官问到了,也能从 ...
- Java中static变量作用和用法详解
static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static ...
- static、final和finalize详解
一.static 修饰符 数据共享 成员变量(实例变量)和静态变量(类变量)的区别 两个变量的生命周期不同 成员变量随对象的创建而存在,随对象被回收而释放 静态变量随类的加载而存在,随类的消失而消失 ...
- JAVA面对对象(三)——Super、static、final关键字
Super 使用super关键字可以直接调用父类中的构造方法.属性.普通方法 super调用父类构造方法的操作,与this调用构造方法一样,语句必须放在子类构造方法的首行 public class P ...
- Java多线程之syncrhoized内置互斥锁的用法详解
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5827547.html 解决并行冲突最有效的方法就是加同步锁,主要有以下几种方法: 1:动态方法 ...
- Java面试题_第一阶段(static、final、面向对象、多线程、集合、String、同步、接口、GC、JVM)
1.1 简述static和final的用法? static:修饰属性,方法,代码块 (1)静态属性:也可叫类变量 类名.属性名 来访问 (共有的类变量与对象无关,只和类有关) 注意:类中的实例变量 ...
- ava下static关键字用法详解
Java下static关键字用法详解 本文章介绍了java下static关键字的用法,大部分内容摘自原作者,在此学习并分享给大家. Static关键字可以修饰什么? 从以下测试可以看出, static ...
- Java语言Socket接口用法详解
Socket接口用法详解 在Java中,基于TCP协议实现网络通信的类有两个,在客户端的Socket类和在服务器端的ServerSocket类,ServerSocket类的功能是建立一个Serve ...
- Java Enum用法详解
Java Enum用法详解 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举 ...
随机推荐
- maven 项目搭建,本地环境配置。
一,下载地址 http://maven.apache.org/download.cgi 英文不好的,可以在浏览器下载个翻译的插件,就好了,我用的是谷歌. 二, 解压文件,安装在自己制定的目录,注意安装 ...
- django之js模板插件artTemplate的使用
安装: 方式1:artTemplate模板源码下载地址:https://aui.github.io/art-template/zh-cn/index.html 方式2:使用node.js进行安装:np ...
- cloudcompare备忘录(1)
1.找点 然后直接在需要的位置上点就会出现这个点的信息了~! 2.想看一个三d的切面时候 先选中切的目标 点击小剪刀~ 点击鼠标左键四次来框选,然后点击鼠标右键确认 再点击这个按钮就切好了
- Ajax创建对象的方法
ajax涉及的技术包括Html.css.dom.xml.javascript等. 主流创建ajax对象的方法: IE6以下版本浏览器创建ajax对象方法是: 定义一个方法创建ajax对象:
- 为 ubuntu 切换更新源
感谢大佬:https://blog.csdn.net/sudaning/article/details/83445677 目录 备份 修改源文件 更新列表 更新软件 备份 sudo cp /etc/a ...
- Cell的重用原理
iOS设备的内存有限,如果用UITableView显示成千上万条数据,就需要成千上万个UITableViewCell对象的话,那将会耗尽iOS设备的内存.要解决该问题,需要重用UITableViewC ...
- 二叉树的基本操作(C语言版)
今天走进数据结构之二叉树 二叉树的基本操作(C 语言版) 1 二叉树的定义 二叉树的图长这样: 二叉树是每个结点最多有两个子树的树结构,常被用于实现二叉查找树和二叉堆.二叉树是链式存储结构,用的是二叉 ...
- python解释器的安装以及解释器多版本共存
版本介绍 python创始人:gukido(龟叔) python1.X 原始版本,几乎不用 python2.x 最高版本2.7(2020年之后不再维护) python3.x 最高版本3.9(一般用3. ...
- Solution Set -「ARC 107」
「ARC 107A」Simple Math Link. 答案为: \[\frac{a(a+1)\cdot b(b+1)\cdot c(c+1)}{8} \] 「ARC 107B」Quadrup ...
- 在ABP VNext框架中处理和用户相关的多对多的关系
前面介绍了一些ABP VNext架构上的内容,随着内容的细化,我们会发现ABP VNext框架中的Entity Framework处理表之间的引用关系还是比较麻烦的,一不小心就容易出错了,本篇随笔介绍 ...