一、简述从现实世界中抽象出类的步骤

  第一:找出分类(分析出类)
  第二:找出类的特征(分析类的相关属性)
  第三:找出类的行为(分析类的方法)

二、常量(经常出现的变量值)

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) 抽象和封装的更多相关文章

  1. Java之抽象和封装

    ① 如何从现实世界中抽象出类?    根据软件开发需求: 发现类-->发现类的属性-->发现类的方法    ②   构造方法的作用和特点是什么?    作用:在创建对象时执行一些初始化操作 ...

  2. java 使用抽象工厂封装特性方法

    1.创建抽象类:封装含有相同特性的方法. */ public abstract class AbstractPayment { public abstract String progress() th ...

  3. Java的继承、封装与多态

    Java的继承.封装与多态 基本概念 面向对象OO(Object Oriented):把数据及对数据的操作方法放在一起,作为一个相互依存的整体,即对象. 对同类对象抽象出共性,即类. 比如人就是一个类 ...

  4. Java基础_0303:封装性初步

    class Book { // 定义一个新的类 private String title; // 书的名字 private double price; // 书的价格 public void getI ...

  5. 关于Java的特点之封装

    抽象 1.简单理解 我们在前面去定义一个类时候,实际上就是把一类事物的共有的属性和行为提取出来,形成一个物理模型(模版).这种研究问题的方法称为抽象. 封装--什么是封装 封装就是把抽象出来的数据和对 ...

  6. Atitit. C# java 的api 目录封装结构映射总结

    Atitit. C#  java 的api 目录封装结构映射总结 C# java ref System.Reflection System.Type, java.lang.ref concurrent ...

  7. PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)

    PHP面向对象三大特点学习 学习目标:充分理解抽象.封装.继承.多态   面象对向的三大特点:封装性.继承性.多态性 首先简单理解一下抽象:我们在前面定义一个类的时候,实际上就是把一类事物共有的属性和 ...

  8. Redis操作Set工具类封装,Java Redis Set命令封装

    Redis操作Set工具类封装,Java Redis Set命令封装 >>>>>>>>>>>>>>>>& ...

  9. Redis操作List工具类封装,Java Redis List命令封装

    Redis操作List工具类封装,Java Redis List命令封装 >>>>>>>>>>>>>>>> ...

随机推荐

  1. 获取OlapConnection连接

    目录: 1.获取org.olap4j.OlapConnection对象 2.获取mondrian.olap.Connection对象 一.org.olap4j.OlapConnection对象 说明: ...

  2. Win7系统下,docker构建nginx+php7环境实践

    前面两章介绍的是Windows系统下如何安装和配置docker,主要原因在于,公司大多人数用的是Windows环境,想通过在Windows环境上,通过docker,构建一个公用的配置. 首先要说明的是 ...

  3. 关于Knowledge Transfer的一点想法

    维基百科中对于Knowledge Transfer(知识转移)的定义是: 知识转移是指分享或传播知识并为解决问题提供投入.在组织理论中,知识转移是将知识从组织的一个部分转移到另一个部分的实践问题. 与 ...

  4. [LeetCode] 17. 电话号码的字母组合

    题目描述:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/ 题目描述: 给定一个仅包含数字 2-9 的字符 ...

  5. Java的selenium代码随笔(8)

    Selenium截图方法一: Selenium中截图类TakeScreenshout,这个类主要是获取浏览器窗体内的内容,不包括浏览器的菜单和桌面的任务栏区域,我们用百度首页来截图,看看截图效果. F ...

  6. python高级编程笔记一 正则表达式

    事例

  7. element 给table的个别表格框添加样式 ---重构里面的组件

    <el-table ref="singleTable" :show-header='false' :data="tableData" align='cen ...

  8. IntelliJ IDEA 2018 最新版注册码

    参考:IntelliJ IDEA 2018注册码(无需修改hosts文件) :

  9. 使用vue全家桶制作博客网站

    前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用vue全家桶制作的博客网站 概述 该项目是基于vue全家桶(vue.vue-router.vuex.v ...

  10. Oracle篇 之 数据操作

    一.DML 数据操作语言(Data Manipulation Language) 1.insert insert into student values(1,'briup1',20,'Male'); ...