Java(13) 抽象和封装

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

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

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

2.1 语法:

  public static final 数据类型 常量名 = 常量值;
注意:1.final最终的,修饰的变量不能被修改
    2.变量名的所有字母都大写,多个单词用下划线(_)分割,
例如:public static final String SEX_MALE ="Q仔";
常量的访问式:类名.常量名

示例:

 1 public class Example1 {
 2     String name = "无名氏";//昵称
 3     int health =100;//健康值
 4     int love = 0;//亲密度
 5     public static final String SEX_MALE= "雌";
 6     public static final String SEX_FEMALE = "雄";
 7     String sex  = SEX_MALE;//性别
 8     public void ji(){
 9         System.out.println("宠物的自白:\n我的名字叫"+this.name+",健康值是"+this.health
10                 +",和主人的亲密度是"+this.love+",我是一只"+this.sex+"。");
11     }
12 }

企鹅类

 1 public class Text1 {
 2     public static void main(String[] args){
 3         Example4 qi = new Example4();
 4         System.out.println("第一个企鹅的性别是:"+qi.sex);
 5         qi = new Example4();
 6         qi.sex =qi.SEX_FEMALE;
 7         System.out.println("第二个企鹅的性别是:"+qi.sex);
 8         qi = new Example4();
 9         qi.sex =qi.SEX_MALE;
10         System.out.println("第三个企鹅的性别是:"+qi.sex);
11     }
12 }

测试类

运行结果为:

三.构造方法(特殊方法,用来创建对象,初始化值)

3.1 语法:

public 类名( 参数列表){
  //方法体
}
  a.使用
    类名 对象名 = new 构造方法名(参数);
    Dog d = new Dog();
  b.与一般方法的区别
    1,构造方法没有返回值类型;
    2,构造方法的方法名就是类名,一般方法可以任意取
         3,构造方法调用:new 构造方法名(参数);
    一般方法调用:对象名.方法名(参数);
  c.构造方法的作用
    1,创建方法对象
    2,初始化值(属性值);
注意:当你没有写构造函数时,java会提供默认的无参构造函数
例如:public Dog(){
   }

示例2:

 1 public class Example2{
 2         String name = "无名氏";//昵称
 3         int health =100;//健康值
 4         int love = 0;//亲密度
 5         String sex  = "Q仔";//性别
 6         public Example6(){
 7             name = "楠楠";
 8             love =20;
 9             sex = "Q妹";
10             System.out.println("执行构造方法");
11         }
12         public void ji(){
13             System.out.println("宠物的自白:\n我的名字叫"+this.name+",健康值是"+this.health
14                     +",和主人的亲密度是"+this.love+",我是一只"+this.sex+"。");
15         }
16         public static void main(String[] args){
17             Example6 qi = null;
18             qi = new Example6();
19             qi.ji();
20         }
21 }

无参构造方法

运行结果为:

四、方法重载

   方法名一样,参数列表不一样
注意:重载与返回值了类型和访问修饰符无关

 1 public class Example8 {
 2     String name = "无名氏";//昵称
 3     int health =100;//健康值
 4     int love = 0;//亲密度
 5     String sex  = "Q仔";//性别
 6     public Example8(){
 7         name = "楠楠";
 8         love =20;
 9         sex = "Q妹";
10         System.out.println("执行构造方法");
11     }
12     //两个参数的构造方法
13     public Example8(String name,String sex){
14         this.name = name;
15         this.sex = sex;
16     }
17     public Example8(String name,int health,int love,String sex){
18         this.name = name;
19         this.health= health;
20         this.love = love;
21         this.sex = sex;
22     }
23     public void ji(){
24         System.out.println("宠物的自白:\n我的名字叫"+this.name+",健康值是"+this.health
25                 +",和主人的亲密度是"+this.love+",我是一只"+this.sex+"。");
26     }
27     public static void main(String[] args){
28         Example8 qi = null;
29         qi = new Example8();
30         qi.ji();
31         qi = new Example8("丫丫","企鹅");
32         qi.ji();
33         qi = new Example8("妹妹",80,20,"Q仔");
34         qi.ji();
35     }
36 }

方法重载

 运行结果为:

六、封装

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(),必需写在构造函数的第一行。

 

时间: 2024-12-14 06:57:26

Java(13) 抽象和封装的相关文章

java基础---抽象和封装

1.为什么使用面向对象? 现实世界是由什么组成的,世界由对象组成 面向对象的思想符合人类思维习惯,面向对象的思想描述面向对象的世界 2.软件出现的目的 n用计算机的语言描述现实世界 n用计算机解决现实世界的问题 3.面向对象设计和开发程序的好处 n交流更加流畅 n提高设计和开发效率 4.一个现实世界的问题 宠物--现实世界的对象 如何在计算机中描述它们? 从现实中抽象出类分三步:1. 找出它的种类2. 找出它的属性3. 找出它的行为 第一步:发现类(根据"对象"抽象出"类&q

java。抽象和封装:重写,重载

1.方法重载(overload) 方法名相同 参数类型不同(参数个数和类型) 与返回类型无关 2.方法重写(override)-->用来实现多态的,只有实例方法可以实现多态,静态方法无法实现多态 子类重写父类方法 方法名相同 返回类型相同 参数相同 重写和重载的区别?overload方法可以改变返回值类型? ==>可以改变返回值类型 a.方法的重写和重载是java多态性的不同表现. b.重写是父类与子类之间多态性的一种表现 c.重载是一个类中多态性的一种表现

非专业码农 JAVA学习笔记 3 抽象、封装和类(1)

抽象.封装和类(1)待续 首先声明,今天接了太多个电话,两个小时看书被打断多次,缩减为一个小时.不管了,走马观花也要看完几个小节: (一)抽象与封装:抽象-抽取和研究实际性问题加以考察(抽象-尼玛抽出对象…) 封装:相关操作封存在命名空间.类等 (二)java的类: 1.系统定义的类(用于import中引入) 类名 作用 Java.lang 语言包,默认加载 Java.io, In out:文件数据流操作产生的输入输出流 Java.util 低级工具,如时间data类,变成数组vector类,h

非专业码农 JAVA学习笔记 3 抽象、封装和类(2)

(2).静态域-放在内存公共存储单元,不放在特定的对象,用static修饰 (续上一篇<非专业码农 JAVA学习笔记 3 抽象.封装和类(1)>...) (3).静态初始器-由static引导的一对大括号括起来的语句组,作用跟构造函数相似 (4).最终域-final引导的,值在整个过程都不发生改变的 5.方法 (1)方法的定义:修饰词1 修饰词2…返回值类型 方法名(参数) throw[异常列表] 这里个人经验就是注意定义了返回值的方法,要在方法体里面增加return 该类型变量:此外遇到if

java面向对象编程(五)--四大特征之抽象、封装

1.抽象 我们在前面去定义一个类时候,实际上就是把一类事物的共有的属性和行为提取出来,形成一个物理模型(模版).这种研究问题的方法称为抽象. 2.封装 封装就是把抽象出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作. java中实现封装的方法: 案例:不能随便查看人的年龄,工资等隐私[Demo116.java] //封装案例[Demo116.java] public class Demo116{ public static

java并行调度框架封装及示例

参考资料:  阿里巴巴开源项目 CobarClient  源码实现. 分享作者:闫建忠 分享时间:2014年5月7日 --------------------------------------------------------------------------------------- 并行调度封装类设计: BXexample.java package org.hdht.business.ordermanager.quartzjob; import java.util.ArrayList;

(1) 深入理解Java面向对象三大特性 封装 继承 多态

转眼已经工作快6年了,最开始做了2年J2EE:然后整了2年的数据仓库,主要是Cognos的报表开发:现在从事4G LTE核心网的开发,用的语言任然是Java,但写代码的机会不多,基本都是看代码找BUG,偶尔做点new feature也是在比较成熟的框架上复制.粘贴.修改,大部分时间还是在理解业务,钱多.事少.离家近,当时来这家公司图的是后面2点,2年过去了,英文水平有所提升,对敏捷开放也有一定的了解,但技术方面明显退步了或者说没有进步吧,本来以前也不怎么好,因为工作上用不到,自己也没怎么学习,所

java基础面向对象之封装

java基础面向对象之封装 2017-01-15 封装 1)封装性就是保证类内部被外部类不可见 2)所有属性都必须使用private关键字声明 3)封转后的属性如果要被外部所访问就必须实现set和get方法 例如: 使用了private声明的属性只有在自己的类是可见的 1 class Book{ 2 private String title ; //使用private声明的属性 3 private int price ; 4 } 5 public class PrivateDemo1 { 6 p

关于Java的特点之封装

抽象 1.简单理解 我们在前面去定义一个类时候,实际上就是把一类事物的共有的属性和行为提取出来,形成一个物理模型(模版).这种研究问题的方法称为抽象. 封装--什么是封装 封装就是把抽象出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作. 封装--访问控制修饰符 电视机的开关,对音量,颜色,频道的控制是公开的,谁都可以操作,但是对机箱后盖,主机板的操作却不是公开的,一般是由专业维修人员来玩.那么java中如何实现这种类似的控制