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

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

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

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. Docker: Jenkins里的pipeline编写基本技巧

    Jenkins里,先新建一个pipeline项目 Pipeline Syntax 在Sample Step里选择需要的插件,如果不存在,就去系统管理,插件管理里,进行安装. 如果源码管理工具用的是gi ...

  2. MySQL存储引擎InnoDB与MyISAM的区别

    一.比较 事务:InnoDB是事务型的,可以使用Commit和Rollback语句. 并发:MyISAM只支持表级锁,InnoDB还支持行级锁. 外键:InnoDB支持外键. 备份:InnoDB支持在 ...

  3. 016_python程序变量抽取配置的几种方式

    一.json配置文件 json文件的互转,如下例子: 配置文件:example.json { "mysql":{ "host":"localhost& ...

  4. 如何使用纯 CSS 制作四子连珠游戏

    序言:你是否想过单纯使用 CSS 也可以制作一款游戏?甚至可以双人对决!这是一篇非常有趣的文章,作者详细讲解了使用纯 CSS 制作四子连珠游戏的思路以及使用奇淫巧技解决困难问题的方法.因为案例本身比较 ...

  5. js实现分段上传文件

    使用js实现分段上传文件,本文使用了FileReader对象,可参考:https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader 1)获取文 ...

  6. Python之shutil模块(复制移动文件)

    用python实现将某代码文件复制/移动到指定路径下.场景例如:mv ./xxx/git/project1/test.sh ./xxx/tmp/tmp/1/test.sh (相对路径./xxx/tmp ...

  7. Ubuntu安装Navicat 12 for MySQL

    环境准备 要想运行Navicat,必须先安装Wine,这个可以使用下面的命令来安装Wine: ubuntu@ubuntu ~ $ sudo apt-get install wine-stable 安装 ...

  8. antd form 自定义验证表单使用方法

    import React from 'react'; import classNames from 'classnames'; export default class FormClass exten ...

  9. Java静态代码块、构造代码块执行顺序问题

    package com.zxl.staticdemo; public class BlockTest { static { System.out.println("BlockTest静态代码 ...

  10. Centos 使用yum安装MongoDB 4.0

    1.配置MongoDB的yum源 创建yum源文件: #cd /etc/yum.repos.d #vim mongodb-org-4.0.repo 添加以下内容:(我们这里使用阿里云的源) [mngo ...