Java(13) 抽象和封装
一、简述从现实世界中抽象出类的步骤
第一:找出分类(分析出类)
第二:找出类的特征(分析类的相关属性)
第三:找出类的行为(分析类的方法)
二、常量(经常出现的变量值)
2.1 语法:
public static final 数据类型 常量名 = 常量值;
注意:1.final最终的,修饰的变量不能被修改
2.变量名的所有字母都大写,多个单词用下划线(_)分割,
例如:public static final String SEX_MALE ="Q仔";
常量的访问式:类名.常量名
示例:
public class Example1 {
String name = "无名氏";//昵称
int health =100;//健康值
int love = 0;//亲密度
public static final String SEX_MALE= "雌";
public static final String SEX_FEMALE = "雄";
String sex = SEX_MALE;//性别
public void ji(){
System.out.println("宠物的自白:\n我的名字叫"+this.name+",健康值是"+this.health
+",和主人的亲密度是"+this.love+",我是一只"+this.sex+"。");
}
}
企鹅类
public class Text1 {
public static void main(String[] args){
Example4 qi = new Example4();
System.out.println("第一个企鹅的性别是:"+qi.sex);
qi = new Example4();
qi.sex =qi.SEX_FEMALE;
System.out.println("第二个企鹅的性别是:"+qi.sex);
qi = new Example4();
qi.sex =qi.SEX_MALE;
System.out.println("第三个企鹅的性别是:"+qi.sex);
}
}
测试类
运行结果为:
三.构造方法(特殊方法,用来创建对象,初始化值)
3.1 语法:
public 类名( 参数列表){
//方法体
}
a.使用
类名 对象名 = new 构造方法名(参数);
Dog d = new Dog();
b.与一般方法的区别
1,构造方法没有返回值类型;
2,构造方法的方法名就是类名,一般方法可以任意取
3,构造方法调用:new 构造方法名(参数);
一般方法调用:对象名.方法名(参数);
c.构造方法的作用
1,创建方法对象
2,初始化值(属性值);
注意:当你没有写构造函数时,java会提供默认的无参构造函数
例如:public Dog(){
}
示例2:
public class Example2{
String name = "无名氏";//昵称
int health =100;//健康值
int love = 0;//亲密度
String sex = "Q仔";//性别
public Example6(){
name = "楠楠";
love =20;
sex = "Q妹";
System.out.println("执行构造方法");
}
public void ji(){
System.out.println("宠物的自白:\n我的名字叫"+this.name+",健康值是"+this.health
+",和主人的亲密度是"+this.love+",我是一只"+this.sex+"。");
}
public static void main(String[] args){
Example6 qi = null;
qi = new Example6();
qi.ji();
}
}
无参构造方法
运行结果为:
四、方法重载
方法名一样,参数列表不一样
注意:重载与返回值了类型和访问修饰符无关
public class Example8 {
String name = "无名氏";//昵称
int health =100;//健康值
int love = 0;//亲密度
String sex = "Q仔";//性别
public Example8(){
name = "楠楠";
love =20;
sex = "Q妹";
System.out.println("执行构造方法");
}
//两个参数的构造方法
public Example8(String name,String sex){
this.name = name;
this.sex = sex;
}
public Example8(String name,int health,int love,String sex){
this.name = name;
this.health= health;
this.love = love;
this.sex = sex;
}
public void ji(){
System.out.println("宠物的自白:\n我的名字叫"+this.name+",健康值是"+this.health
+",和主人的亲密度是"+this.love+",我是一只"+this.sex+"。");
}
public static void main(String[] args){
Example8 qi = null;
qi = new Example8();
qi.ji();
qi = new Example8("丫丫","企鹅");
qi.ji();
qi = new Example8("妹妹",80,20,"Q仔");
qi.ji();
}
}
方法重载
运行结果为:
六、封装
6.1 作用:隐藏类不实现细节;
6.2 步骤:
1.采用了private修饰符的变量不能在类外部访问,而通过public修饰的set和get方法访问
2.在set方法中编写相应存取控制语句可以避免出现不符合实际需求的赋值
将属性均设为private权限,这样的属性只在类内可见,
用public权限的ste方法和get方法实现对属性的存取。
在set方法中对输入的属性值的范围进行判断,简单说,指定某一事物的值并要进行判断的时候用set
6.3 this关键词
this:表示当前对象
调用属性:this.属性名
调用方法:this.方法名();
this():表示调用构造函数。
注意:this(),必需写在构造函数的第一行。
Java(13) 抽象和封装的更多相关文章
- Java之抽象和封装
① 如何从现实世界中抽象出类? 根据软件开发需求: 发现类-->发现类的属性-->发现类的方法 ② 构造方法的作用和特点是什么? 作用:在创建对象时执行一些初始化操作 ...
- java 使用抽象工厂封装特性方法
1.创建抽象类:封装含有相同特性的方法. */ public abstract class AbstractPayment { public abstract String progress() th ...
- Java的继承、封装与多态
Java的继承.封装与多态 基本概念 面向对象OO(Object Oriented):把数据及对数据的操作方法放在一起,作为一个相互依存的整体,即对象. 对同类对象抽象出共性,即类. 比如人就是一个类 ...
- Java基础_0303:封装性初步
class Book { // 定义一个新的类 private String title; // 书的名字 private double price; // 书的价格 public void getI ...
- 关于Java的特点之封装
抽象 1.简单理解 我们在前面去定义一个类时候,实际上就是把一类事物的共有的属性和行为提取出来,形成一个物理模型(模版).这种研究问题的方法称为抽象. 封装--什么是封装 封装就是把抽象出来的数据和对 ...
- Atitit. C# java 的api 目录封装结构映射总结
Atitit. C# java 的api 目录封装结构映射总结 C# java ref System.Reflection System.Type, java.lang.ref concurrent ...
- PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
PHP面向对象三大特点学习 学习目标:充分理解抽象.封装.继承.多态 面象对向的三大特点:封装性.继承性.多态性 首先简单理解一下抽象:我们在前面定义一个类的时候,实际上就是把一类事物共有的属性和 ...
- Redis操作Set工具类封装,Java Redis Set命令封装
Redis操作Set工具类封装,Java Redis Set命令封装 >>>>>>>>>>>>>>>>& ...
- Redis操作List工具类封装,Java Redis List命令封装
Redis操作List工具类封装,Java Redis List命令封装 >>>>>>>>>>>>>>>> ...
随机推荐
- 彻底搞懂spark的shuffle过程(shuffle write)
什么时候需要 shuffle writer 假如我们有个 spark job 依赖关系如下 我们抽象出来其中的rdd和依赖关系: E <-------n------, ...
- 随心测试_软测基础_006<测试人职业发展>
接上篇:熟悉了_测试人员的工作职责范围与具体的工作内容 ,如何规划:测试人员的职业路线呢? 贴心小提示:以下内容,仅供参考,不挖坑 Q1:如何规划测试工程师的职业发展路线? A1:SX的观点:预定目标 ...
- 13 在 Django REST framework 善用 SerializerMethodField方法
01-使用SerializerMethodField 来优化不必要的查询 class RepairQueueSerializer(serializers.ModelSerializer): # rq_ ...
- FAST LOW-RANK APPROXIMATION FOR COVARIANCE MATRICES
目录 Nystorm method 低秩逼近 矩阵乘法的逼近 Belabbas M A, Wolfe P J. Fast Low-Rank Approximation for Covariance M ...
- 通过java代码执行Linux命令查询声卡和显卡 型号
package test; import java.io.BufferedReader; import java.io.InputStreamReader; public class ExcuteLi ...
- 禁止Cnario Player启动后自动开始播放
Cnario Player安装激活后, 默认开机后自动启动, 启动加载内容完成后进入10秒倒计时, 10秒后即开始播放关机前播放的内容. 如果不想让其自动开始播放, 可按照如下办法设置其不自动播放. ...
- CSS中的opacity,不透明度的坑
opacity的用法示例如下 /* 值是0到1之间的数值 */ opacity:0.5 opacity设置在元素上的时候,会出现什么效果? 答曰:如果不设置opacity的话,会显示效果为A(可以理解 ...
- MCMC算法解析
MCMC算法的核心思想是我们已知一个概率密度函数,需要从这个概率分布中采样,来分析这个分布的一些统计特性,然而这个这个函数非常之复杂,怎么去采样?这时,就可以借助MCMC的思想. 它与变分自编码不同在 ...
- 一个解释volatile关键字最好的例子
小例子 public class VolatileTest { private static volatile int INIT_VALUE = 0; private final static int ...
- package---包
一,包 包(package) 用于管理程序中的类,主要用于解决类的同名问题.包可以看成目录. 包的作用: [1] 防止命名冲突. [2] 允许类组成一个单元(模块),便于管理和维护 [3] 更好的保护 ...