抽象和封装

一、软件出现的目的是为了:
1.用计算机语言描述现实世界。
2.用计算机解决现实世界中的问题。
二、面向对象:
1.与人类的思维习惯一致
2.代码可重用性高,可靠性高。
三、从现实世界中抽象出类:
1.发现类
2.发现类的属性
3.发现类的方法
四、使用类图描述类:
1.用于分析和设计类
2.直观、容易理解
五、类图:
1.类名
2.属性名和属性类型
3.访问修饰符:+,public ,-private
4.方法名和返回值类型
六、构造方法:
1.特点:在类里面,方法名与类名一致。一个类中必须得包含一个无参的构造方法。
2.执行时机:创建该类的对象时(new 类名),执行构造方法。
3.创建类的时候,系统会自动的创建一个无参的构造方法。但是,如果该类里面有带参的构造方法的话,系统将不会自动创建无参的构造方法,必须得手动创建一个无参的构造方法。
七、static,静态的:
1.静态变量的语法:static 变量类型 变量名 = 值;
2.调用静态变量的语法:
(1)对象名.变量名
(2)类名.变量名
八、常量:
1.语法:final 变量类型 变量名 = “值”;
2.特点:只能在声明的时候给它值,不能修改。
九、静态常量:
1.语法:static final 变量类型 变量名 = “值”;
2.特点:不能修改,调用的时候可以是对象名.变量名,也可以是类名.变量名。
3.static可以修饰属性、方法和代码块
4.使用static 修饰的属性称为类属性,修饰的方法称为类方法。
5.不使用static修饰的属性和方法被称为实例属性和实例方法。
6.final可以修饰属性,方法和类。
7.不使用static修饰的属性,只能用对象名.属性名来调用。
十、方法重载:
1.方法名相同
2.参数列表不同
eg:public void a(){}
public int a(){}
这两个方法不是重载
public void a(){}
public void a(int a){}
这两个方法是重载
十一、封装:
1. 概念:对内隐藏实现细节,对外提供公共的方法来使调用者调用。
2.好处:
(1)只能通过规定的方法访问数据。
(2)隐藏类内部实现细节。
(3)方便加入控制语句
(4)方便修改实现
3.使用封装的3个步骤:
(1)将属性的访问修饰符修改成private
(2)给每个属性创建getter和setter方法
(3)在getter和setter方法中加入控制语句。
(4)给属性封装的快捷键:alt+shift+s
4.eg:
private int health;
//getter方法
public int getHealth(){
return health;
}
//setter方法
public void setHealth(int health){
if(health<0||health>100){
this.health = 100;
}else{
this.health = health;
}
}
5.注意事项:
一般,属性名都是小写,get和set方法的名字,首字母小写,第二个单词以及后面的,首字母均大写,eg:getHealth,setHealth

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/325778.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

支付对账系统怎么设计

转载自 支付对账系统怎么设计 支付对账系统是整个支付清结算体系中具体基础性意义的一个环节&#xff0c;是确保支付平台与各类第三方支付渠道数据一致性的关键系统&#xff0c;是商户资金结算、资金划拨、资金报表等逻辑准确运行的重要前提。 支付对账涉及账单下载处理、核心…

十二个 ASP.NET Core 例子

前言 在今天的博客中&#xff0c;我将介绍十几个可以在 ASP.NET Core 应用程序中使用的简单示例。从最简单的东西开始&#xff0c;比如 Options, 中间件&#xff0c;数据库&#xff0c;甚至 Nginx 或者 Docker。 首先确定你已经执行过了 dotnet restore , 然后运行 dotnet ru…

Opencv FFmpeg Ubuntu下编译问题

FFmpeg转码错误Cannot load libcuda.so.1 https://blog.csdn.net/yzhang6_10/article/details/81349532 srs2.0 安装启动 https://my.oschina.net/fengjihu/blog/413710 SRS-HLS服务的部署 https://blog.csdn.net/dengjoe/article/details/52698423 ubuntu编译ffmpeg并且demo测…

40 道基础Dubbo 面试题及答案

转载自 40 道 Dubbo 面试题及答案 想往高处走&#xff0c;怎么能不懂 Dubbo&#xff1f; Dubbo是国内最出名的分布式服务框架&#xff0c;也是 Java 程序员必备的必会的框架之一。Dubbo 更是中高级面试过程中经常会问的技术&#xff0c;无论你是否用过&#xff0c;你都必须…

康威定律和系统设计——《微服务设计》读书笔记

康威定律 任何组织在设计一套系统时&#xff0c;所交付的设计方案在结构上都与该组织的沟通结构保持一致。 ——梅尔.康威 如何理解这句话在软件工程上的含义&#xff1f;埃里克.S.雷蒙德说&#xff1a;如果你有四个小组开发一个编译器&#xff0c;那你会得到一个四步编译器。…

Ubuntu下C++代码调用可执行文件。

例如&#xff1a;已经存在一个编译好的c可执行文件&#xff1a; 简单代码&#xff08;第一个可执行文件&#xff09; vim hello.cpp #include <iostream> using namespace std; int main(){cout<<"Ubuntu调用C可执行文件成功"<<endl;return 0; }编…

Eclipse 4.9 正式发布,支持 Java 11

转载自 Eclipse 4.9 正式发布&#xff0c;支持 Java 11 来看看 Eclipse 4.9 带来了哪些新特性&#xff01; 1、外观 新增类似大纲视图的”Minimap” 间主题/暗黑主题&#xff0c;启用方法&#xff1a; Window > Show View > Other&#xff0c;然后在 Show View 对话框…

Ubuntu C++ Thread Sleep

#include #include <unistd.h> using namespace std; int main() { cout << “nitrate”; cout << flush; usleep(1000000); cout << “firtilizers”; return 0; } usleep函数能把线程挂起一段时间&#xff0c; 单位是微秒&#xff08;千分之一毫秒…

JS书写规则

1.JS严格区分大小写 2.JS中每条语句以分号(;)结尾如果不写分号&#xff0c;浏览器会自动添加&#xff0c;但是会消耗一些系统资源&#xff0c; 而且有些时候&#xff0c;浏览器会加错分号&#xff0c;所以在开发中分号必须写 3.JS中会自动忽略多个空格和换行&#xff0c;所以…

开发者需要理解的分布式原语

随着容器技术的崛起&#xff0c;开发人员的思维也从单主机扩展到了分布式。Bilgin Ibryam在Red Hat官方博客上介绍了什么是分布式原语&#xff0c;以及它与进程内原语之间的联系。本文已获得作者翻译授权&#xff0c;查看原文New Distributed Primitives for Developers。 面向…

Java 11 正式发布,这 8 个逆天新特性教你写出更牛逼的代码

转载自 Java 11 正式发布&#xff0c;这 8 个逆天新特性教你写出更牛逼的代码 美国时间 09 月 25 日&#xff0c;Oralce 正式发布了 Java 11&#xff0c;这是据 Java 8 以后支持的首个长期版本。 为什么说是长期版本&#xff0c;看下面的官方发布的支持路线图表。 可以看出…

c/c++ 字符串分割

c/c 字符串分割 vector<string> split_string(const char *str, const char *pattern) {char * strc (char*)str;vector<string> res;char* temp strtok(strc, pattern);while(temp ! NULL){res.push_back(string(temp));temp strtok(NULL, pattern);}return re…

JS中的命名规则

在JS中所有的可以自主命名的内容&#xff0c;都可以认为是一个标识符&#xff0c; 是标识符就应该遵守标识符的规范。 比如&#xff1a;变量名、函数名、属性名 规范&#xff1a; 1.标识符中可以含有字母、数字、_、$ 2.标识符不能以数字开头 3.标识符不能是JS中的关键字和保…

mssql on linux 安装指导

通常在本机开发环境中需要搭建所有的服务&#xff0c;还要修改本地的hosts&#xff0c;实在是不胜其烦。如今有了docker&#xff0c;完全不用污染本地环境&#xff0c;且看老司机带你搭建一个asp.net core的开发环境集群。愿你走出虚拟机&#xff0c;归来仍是干净的开发机。 教…

互联网账户系统的具体实现

转载自 互联网账户系统的具体实现 导读 在上一篇文章中我们通过场景举例的方式&#xff0c;讨论了一套相对通用的互联网业务账户系统&#xff0c;从业务模型上应该如何定义。那么除了从业务模型上进行定义外&#xff0c;在具体系统实现上又该如何设计&#xff1f;又有哪些需…

JDBC简单总结

一、java集合框架包含的内容&#xff1a; 1.Collection ①List接口: a.ArrayList实现类&#xff1a;实现了长度可变的数组&#xff0c;遍历数据的时候效率比较高 b.LinkedList实现类&#xff1a;采用链表存储方式&#xff0c;插入和删除元素的时候效率比较高 ②Set接口: a.Hash…

ubuntu 16.4 安装postgreSQL,使C++链接到数据库

1、安装postgreSQL Ubuntu下编译安装postgreSQL 10.5 https://blog.csdn.net/lc_2014c/article/details/84189162 2、安装驱动Libpqxx下载 编译报错 安装sudo apt-get install libpq-dev 3.设置数据库允许远程登录 ubuntu设置postgresql允许被远程访问 https://blog.csdn.net/…