抽象和封装

眼泪,还是流了 眼泪,还是流了     2022-09-04     199

关键词:

1.从现实抽象出类的步骤
  第一步:找出分类(分析出类)
  第二步:找出类的特征(分析类的相关属性)
  第三步:找出类的行为(分析类的方法)

2.常量(就是出现的变量值)
  语法:public static final 数据类型 常量名=常量值;
    eg:public static final String SEX_MALE="Q仔";
    eg:public static final String SEX_FEMALE="Q妹";
  注意:final是指最终的,修饰的变量不能更改
  常量名:所有的字母都要大写,多个单词用_分隔
  常量的访问:类名.常量名;
    eg: Penguin.SEX_MALE;

3.构造方法(特殊方法,用来创建对象)
  语法:public 类名(参数列表){
    //方法体
  }
  使用:类名 对象=new 构造方法名(参数);
    eg:Dog d=new Dog();
  作用:a.创建对象
     b.初始化值(属性值)


  构造方法和普通方法的区别:
    a.构造方法没有返回值类型(return...)
    b.构造方法的方法名是类名,普通方法可以任意取
    c.构造方法调用:new 构造方法名(参数)
      普通方法的调用:对象名.方法名(参数)
  注意:当没有写构造方法时,Java会提供默认的无参构造函数(构造方法)
  eg:public Dog(){

    }

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

5.static 和final
  static:静态的
    用static修饰的属性,直接可以类名.方法名访问
  final:最终的
    用final修饰的属性,它的值初始化后,不能再改变
  注意:static不能再方法中修饰局部变量

6.封装
  6.1封装:隐藏类内部实现细节
  6.2步骤
    第一步:将属性私有化(private)
    第二步:提供getter/setter方法(getXxxx(),setXxxx())
    第三步:在getter/setter中加入控制语句
  6.3this关键词
    this:表示当前对象
    调用属性:this.属性名
    调用方法:this方法名()
    this():表示调用构造函数
    注意:this():必需写在构造函数的第一行

 

 1 package Day01一;
 2 
 3 public class Dog {
 4     int strain;                    //品种
 5     int age;                    //年龄
 6     String name;                //昵称
 7     int health;                    //健康值
 8     int love;                    //亲密度
 9     //语法:public 类名(参数列表){ }
10     //构造方法(默认构造方法)
11     public Dog(){
12         
13     }
14     public Dog(String name,int strain){
15         //初始化值
16         this();            //当前的构造函数
17         this.name=name;
18         this.strain=strain;
19     }
20     public Dog(String name,int age,int love,int health){
21         this.name=name;
22         this.age=age;
23         this.love=love;
24         this.health=health;
25         
26         System.out.println("----构造方法----");
27     }
28     //打印信息(this表示当前对象)
29     public void print(){
30         System.out.println("名字:"+this.name+",年龄:"+this.age+",品种:"
31             +this.strain+",健康值:"+this.health+",亲密度:"+this.love);
32     }
33     
34     
35     
36     public void setHealth(int health){
37         if(health>0 && health<100){
38             this.health=health;
39             return;
40         }
41         this.health=-1;
42     }
43     public int getHealth(){
44         return health;
45     }
46     
47     public void setName(String name){
48         this.name=name;
49     }
50     public String getName(){
51         return name;
52     }
53     
54     public void setLove(int love){
55         this.love=love;
56     }
57     public int getLove(){
58         return love;
59     }
60     
61     public void setAge(int age){
62         this.age=age;
63     }
64     public int getAge(){
65         return age;
66     }
67     
68     public void setStrain(int strain){
69         this.strain=strain;
70     }
71     public int getStrain(){
72         return strain;
73     }
74     
75 }
Dog类
 1 package Day01一;
 2 
 3 public class Penguin {
 4     String name="无名氏";        //昵称
 5     int health=100;                //健康值
 6     int love=0;                    //亲密度
 7     String sex="Q仔";            //性别
 8     //常量---变量
 9     //public static final 常量名=常量值;
10     public static final String SEX_MALE="Q仔";
11     public static final String SEX_FEMALE="Q妹";
12     //注意:final是指最终的,修饰的变量不能更改
13     //        常量名:所有的字母都要大写,多个单词用_分隔
14 
15     /**
16      * 输出企鹅的信息
17      */
18     public void print(){
19         System.out.println("宠物的自白:\n我的名字叫"+this.name+",健康值是"+this.health+",和主人的亲密度是"+
20                 this.love+",性别是"+this.sex+"。");
21     }
22 }
penguin类
 1 package Day01一;
 2 
 3 import java.util.Scanner;
 4 
 5 public class Test {
 6     public static void main(String[] args) {
 7         Scanner input=new Scanner(System.in);
 8         System.out.println("欢迎您来到宠物店!");
 9         System.out.println("请输入要领养的宠物的名字:");
10         String name=input.next();
11         System.out.println("请选择要领养的宠物类型:(1.狗狗2.企鹅):");
12         int type=input.nextInt();
13         int strain=0;
14         if(type==1){
15             System.out.println("请选择狗狗的品种:(1.聪明的拉布拉多犬2.酷酷的雪纳瑞):");
16             strain=input.nextInt();
17         }
18         int sex=0;
19         if(type==2){
20             System.out.println("请选择企鹅的性别:(1.Q仔2.Q妹):");
21             sex=input.nextInt();
22         }
23         
24         if(type==1){
25             Dog d=new Dog();
26             d.name=name;
27             d.strain=strain;
28             d.print();
29         }
30         if(type==2){
31             Penguin p=new Penguin();
32             p.name=name;
33 //            if(sex==1){
34 //                p.sex="Q仔";
35 //            }
36 //            if(sex==2){
37 //                p.sex="Q妹";
38 //            }
39             if(sex==1){
40                 p.sex=Penguin.SEX_MALE;
41             }
42             if(sex==2){
43                 p.sex=Penguin.SEX_FEMALE;
44             }
45             p.print();
46         }
47     }
48 }
测试类

 

java抽象和封装

如何从现实生活中抽象出类?从对象中抽出类:1.发现对象的种类2.发现对象的属性(特征)3.发现对象的方法(行为)提示:从对象中抽象出来的类,都可以创建这些对象访问修饰符:public:公共的(最高权限)private:私有的(最... 查看详情

抽象和封装

1.从现实抽象出类的步骤  第一步:找出分类(分析出类)  第二步:找出类的特征(分析类的相关属性)  第三步:找出类的行为(分析类的方法)2.常量(就是出现的变量值)   语法:publicstaticfinal数据类型常量名=... 查看详情

封装和修饰符,接口,抽象

什么是封装?和public类似的访问修饰符分别有什么作用?封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面多个可重复使用的函数封装到一个类里面。在使用时直接实例化该类的某一个方法,获得需要的... 查看详情

封装与抽象?

】封装与抽象?【英文标题】:EncapsulationvsAbstraction?【发布时间】:2012-02-1604:04:50【问题描述】:以下是封装和抽象的简要定义。抽象:Java中的抽象过程用于隐藏某些细节和只显示物体的基本特征。换一种说法,它处理对象(... 查看详情

抽象和封装

1.从现实抽象出类的步骤 第一:找出分类(分析出类) 第二:找出类的特征(分析类的相关属性) 第三:找出类的行为(分析类的方法)2.常量(经常出现的变量值) 语法:piblicstaticfinal变量名=变量值; 注意:变量名的所有字... 查看详情

第十二章抽象和封装

1.从实现中抽象出类的步骤: 1)找出它的种类——类名(类名一般是名字) 2)找出它的属性——字段的名字 3)找出它的行为——方法名2.抽象的原则 根据面向对象的思想抽象出类3.类团的好处:直观、容易理解4.构造方法:... 查看详情

abstract(抽象)

谈到抽象,就先谈谈面向对象语言的三大特性,也是人们口中常说的封装、继承、多态。封装:什么是封装,按到我的理解,封装就是把某些类的相关属性和方法封装,对内实现数据影城,对外提供稳定接口。继承:从字面上理... 查看详情

17_javase_抽象类和封装

1.抽象类抽象类:不能用于描绘对象的类(不能用于实例化对象)的类,除了不能实例化对象之外,与普通类的功能相似,有成员变量、成员方法和构造方法等。定义抽象类是用到了abstract关键字。public​ab... 查看详情

封装继承重写抽象类

1.封装:是为了隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的权限(定义)。  封装器:   privatedoublea//ctrl+r,e回车,回车自动生成下面代码publicdoubleA{get{returnprice;}set{price=value;}... 查看详情

java基础知识—抽象和封装

1.从现实中抽象出类的步骤:1)找出它的种类--类名2)找出它的属性--字段的名称3)找出它的行为--方法名2.抽象的原则:根据面向对象的思想抽象出类。3.类图的好处:直观、容易理解。4.构造方法: 1)系统默认的无参构造: ... 查看详情

面向对象基本特征:封装与继承

面向对象的4个基本特征:抽象,封装,继承,多态(后面写)抽象抽象是忽略与目标无关的方面,专注于当前目标的方法。抽象包括2方面:数据抽象,过程抽象数据抽象:表示一类事物的特征,就是对象的属性。过程抽象:表... 查看详情

java基础---抽象和封装

...——现实世界的对象如何在计算机中描述它们?从现实中抽象出类分三步:1.找出它的种类2.找出它的属性3.找出它 查看详情

抽象和封装_java_oop

...:2011年08月20日10:06分 一、面向过程和面向对象二、抽象 只关注与系统相关的行为和特征三、封装 比如你不需要知道电视机是怎么播放画面的,只需要知道怎么用。 1、隐藏实现的细节 2、 查看详情

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

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

类c++(代码片段)

第7章类类的基本思想是数据抽象和封装,数据抽象是一种依赖于接口和实现分离的编程技术。封装实现了类的接口和实现额分离,封装后的类隐藏了它的实现细节。类要想实现数据抽象和封装,需要首先定义一个抽... 查看详情

面向对象的特征

  面向对象有四大基本特征:封装、继承、抽象、多态。封装  封装是保证软件部件具有优良的模块性的基础,封装的目标就是要实现软件部件的“高内聚、低耦合”,防止程序相互依赖性而带来的变动影响。在面向对象的... 查看详情

s2/java/01-抽象和封装

常量:在C#中,用常量来存储不变的数据,常量在程序运行过程中不会发生变化,只能被引用,不能被重新赋值,也就是只能在定义时修改其值。Java中同样也有苍凉,使用final关键字修饰,并且常量名通常都大写。 类名、属... 查看详情

typescript,面向对象,类、构造函数、继承、抽象类、接口和封装

...术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。面向对象的三大特性:封装、继承、多态。TypeScript面向对象,类(class)1、static关键字,表示一个静态属性,通过... 查看详情