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命令封装 >>>>>>>>>>>>>>>> ...
随机推荐
- 用jenkins创建节点
原料:(1)jre下载链接:https://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html ( ...
- 怪事年年有,今天特别多!org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter 'empno' not found. Available parameters are [emp, deptno, param1, param
错误: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.Binding ...
- Django 日志配置
Django日志处理 settings配置 ########### # LOGGING # ########### BASE_LOG_DIR = os.path.join(os.path.dirnam ...
- node编写定时任务,for循环只执行一遍的解决办法
在用node编写定时任务时候,发现for循环只执行i=0这一次,就不接着循环执行了,下面贴上代码: exports.task = async function(ctx){ let { app } = ...
- 专业的web打印插件
Lodop是什么?参考官方网站:http://www.lodop.net/ 有人说她是Web打印控件,因为她能打印.在浏览器中以插件的形式出现,用简单一行语句就把整个网页打印出来: 有人说她是打印编程 ...
- scala的多种集合的使用(3)之遍历集合的方法
遍历集合的方法 1.用foreach循环遍历一个集合 foreach接收一个函数作为参数.定义的函数应该接收一个元素作为输入参数,然后不要返回任何的东西.输入的参数的类型应该匹配集合中的类型.随着fo ...
- kettle变量(param命名参数2)
接arg参数: 通过命令行进行变量赋值和引用 定义跟界面定义相同: 赋值(转换): 运行命令到kettle目录下 pan /file:path "/param:aa="bb&quo ...
- golang核心Goroutine和channel
一.Goroutine 1.介绍 goroutine简介 goroutine是go语言中最为NB的设计,也是其魅力所在,goroutine的本质是协程,是实现并行计算的核心.goroutine使用方式 ...
- python面试题整合
面试题整合 面试题—并发编程部分
- 【地图功能开发系列:二】根据地址名称通过百度地图API查询出坐标
根据地址名称通过百度地图API查询出坐标 百度地图ApiUrl string url = "http://api.map.baidu.com/geocoder?address={0}& ...