面向对象_1

类(Class)的概念

类是对一组具有相同特征和行为的对象的抽象描述。

理解:

[1] 类包含了两个要素:特性和行为=> 同一类事物具有相同的特征和行为。

[2] 类是一个群体性概念。例如:网红、明星、草根

[3] 类可以理解为现实生活中所说的“类型”


为什么会有类的概念?

现实生活中为了能更好的区分事物,从过往的事物中总结事物的特点(特征),并比对新事物,把新事物进行归类,进而更好的认识事物。

程序中


在程序中,引入类的概念,就是为了快速生成更多的具有相同特性和行为的事物。


对象的概念


对象是类的具体实现,表示一个独立的、唯一的个体。

理解

[1] 对象是通过类生成的。对象一定具备该类的特性和行为。

[2] 对象是个体。类是群体。=> 对象是独立的、唯一的。=> 属于同一类型的对象也是相互独立的。

类和对象的区别

类是抽象的,是一个群体概念。对象是具体的,是一个独立个体。

一个独立的对象一定属于某个类。理解为类包含对象

属性和方法


属性

类或者对象具有的特征在程序中称为属性(property/attribute)

具体对象的属性拥有的数据称为属性值


属于同一类对象都具有相同的属性,但各个对象都拥有各自的属性值。这些属性值区分了不同的对象。

方法


类或者对象的行为称为方法(Method)


在java中

类是具有相同属性和方法的对象的集合。

对象是用来描述客观事物的一个实体,由一组属性和方法构成。

类是对象的类型。

定义类和对象


开发者可以根据需要自定义类,语法

[修饰符]  class 类名{

        属性

        方法

}

案例:定义一个类,实例化对象

public class Student{

     //声明类的属性

    String  sid;

    String  name;

    int  age;

    char  gender;


    //声明方法

    public  void learn(String cName){

       System.out.println(name+"  learn "+cName);

    }

}

public class Test01{

    public  static void main(String[] args){


       //通过Student类创建对象

       /*

       Student  stu;

       stu  = new Student();

       */


       //  stu是Student的一个对象,也是Student的一个实例

       //  new操作就是实例化过程

       Student  stu = new Student();

       //给属性赋值(.语法)

       stu.name  = "张三";

       stu.sid  = "001";

       //调用方法

       stu.learn("java");


       Student  stu2 = new Student();

       stu2.name  = "李四";

       stu2.sid  = "001";

       stu2.learn("c++");


    }

}

局部变量和成员变量

局部变量:在方法或者语句块中声明的变量称为局部变量,语句块就是作用域。

局部变量在其所在的作用域有效,出了作用域就无效。


作用域可以嵌套,内部作用域可以访问外部作用域的变量。

public void learn(String cName){

       //方法中定义的局部变量

       System.out.println(name+"learn "+cName);


       //语句块中定义局部变量

       {

           intcount = 10;

           System.out.println("count "+count);

           System.out.println("cname"+cName);

       }


       //System.out.println(" count "+count);

}

成员变量:在方法外部,类的内部定义的变量称为类的成员变量,简称成员变量。有些地方把属性称为filed(字段);

成员变量必须通过类的实例/对象调用,例如 stu.name ,有时成员变量也称为实例变量。


成员变量 == 属性== 字段== 实例变量


类中包含两个成员:成员变量和成员方法。

属性的声明

[修饰符]     属性类型     属性名称     [=默认值]

在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。(数值:0,0.0   char:\u0000,  boolean:false,  所有引用类型:null) 


属性/成员变量的作用域范围是整个类体。



对象的内存图

面向对象编程思维

向对象编程(oop),把一切都看出对象,通过类构造对象,java程序都是通过class类组织的。

所谓面向对象通过类构造对象,使用对象完成需求。


需求:用手机播放一首歌曲

public class Phone{


    String  brand;

    String  type;

    float  price;


    public  void showInfo(){

       System.out.println("品牌:"+brand);

       System.out.println("型号:"+type);

       System.out.println("价格:"+price);

    }


    public  void play(Music music){

       System.out.println("正在用"+brand+type+"播放<<"+music.name+">>歌曲");

       music.showInfo();

    }

}

public class Music{


    String  name;

    String  actor;

    int  times;

    String  content;



    public  void showInfo(){

       System.out.println("--  "+name+" --");

       System.out.println("演唱者:"+actor);


       int  h = times / 3600;

       int  m = times % 3600 / 60;

       int  s = times % 60;


       System.out.println("时长:"+h+":"+m+":"+s);

       System.out.println(content);

    }

}

public class Test01{

    public  static void main(String[] args){


       Music  music = new Music();

       music.name  = "向天再借五百年";

       music.actor  = "韩磊";

       music.times  = 356;

       music.content  = "沿着江山起起伏伏温柔的曲线,\n放马爱的中原爱的北国和江南";


       Phone  phone = new Phone();

       phone.brand  = "Apple";

       phone.type  = "iPhone XR";

       phone.price  = 5999.0f;


       phone.play(music);

       phone.showInfo();


    }

}

总结

面向对象编程就是完成一个复杂的需求需要各个对象之间相互配合完成。对象的创建需要定义类型,java程序就是通过类来组织程序的。

java中一切都是对象。


抽象的概念


根据业务中的对象抽象成计算机可识别的类,简单的说就是抽出各个对象像的部分。


抽象的步骤

[1] 发现类(归类)。类一般用名词。

[2] 发现类的属性(特征)。属性一般用名词。发现类的属性时,一般只放和业务相关的属性。

[3] 发现类的方法(行为)。方法一般是动词。只放和业务相关的方法。


若抽象一个下载类。

[1] DownLoad类

[2] url/name/size/progress/type/location…

[3] start()/pause()/stop()/delete()…

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容