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.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举 ...
随机推荐
- python项目中 ,open() 方法, 如何读取json文件的位置。
一 copy 目标文件绝对路径的URL. 固定在你电脑上的路径.简单好用.
- JavaWeb基本概念及web服务器
1.基本概念 1.1.前言 web开发: web,网页的意思,www.baidu.com 静态web html,css 提供给所有人看的数据始终不会发生变化! 动态web 淘宝,几乎是所有的网站: 提 ...
- eslint规则详解
{ // 环境定义了预定义的全局变量. "env": { //环境定义了预定义的全局变量.更多在官网查看 "browser":true, "node& ...
- bind方法源码
'use strict'; module.exports = function bind(fn, thisArg) { return function wrap() { var args = new ...
- CF1574F Occurrences
考虑什么样的串是合法的. 直接考虑比较抽象,考虑具象化这个问题. 容易发现一个字符串的限制就相当于如果出现了其中一个字符 \(a_i = c\),那么 \(s\) 中 \(c\) 前 \(i - 1\ ...
- bom-client
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Java线程--CopyOnWrite容器使用
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11871602.html Java线程--CopyOnWrite容器使用 CopyOnWrit容 ...
- k8s之list-watch机制、节点调度以及亲和性
k8s之list-watch机制.节点调度以及亲和性 目录 k8s之list-watch机制.节点调度以及亲和性 一.list-watch机制 1. list-watch介绍 2. list-watc ...
- webfunny前端系统:如何解决警报设置触发常见问题
大家好,经常会有小伙伴在使用webfunny监控系统中,遇到无法触发警报的问题,其实都是一些配置上的疏漏,在这里给大家总结一下: PS:只要消息中心里有警报,则说明触发机制没有问题.其他方式没有触发, ...
- Java数据库连接池--DBCP浅析.
一. 为何要使用数据库连接池假设网站一天有很大的访问量,数据库服务器就需要为每次连接创建一次数据库连接,极大的浪费数据库的资源,并且极易造成数据库服务器内存溢出.拓机.数据库连接是一种关键的有限的昂贵 ...