博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面对对象编程(上)
阅读量:7103 次
发布时间:2019-06-28

本文共 4457 字,大约阅读时间需要 14 分钟。

Object:对象,东西,一切皆对象 == 啥都是东西

面对对象的核心:封装、继承、多态。

1. 类(class)的概念 (★★★★★)

1)是同类型东西的概念,是对现实生活中事物的描述,映射到Java中描述就是class定义的类。类是对象的模板、图纸,是对象的数据结构定义。简单说就是“名词”。

理解:

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

  [2] 类是一个群体性概念。例如:网红、明星、草根、屌丝、萝莉、沙雕...

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

2)其实定义类,就是在描述事物,就是在定义属性(变量)和方法(函数)。

 

2. 对象的概念 (★★★★★)

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

理解:

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

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

2)是这类事物实实在在存在的个体!利用类做为模板创建的个体实例,本质是数据。

  匿名对象:

  使用方式一:当对对象的方法只调用一次时,可用匿名对象来完成,这样比较简化。如果对一个对象进行多个成员调用,则必须给这个对象起个名字。

  使用方式二:可以将匿名对象作为实际参数进行传递。

 

3. 类和对象的区别 (★★★★)

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

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

 

4. 属性和方法

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

 

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

 

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

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

在java中:

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

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

    类是对象的类型。

 

5. 定义类和对象 (★★★★★)

1)根据需要自定义类,语法。

[修饰符] class 类名{属性方法

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

1 public class Student{ 2      3     // 声明类的属性 4     String sid; 5     String name; 6     int age; 7     char gender; 8      9     // 声明方法10     public void learn(String cName){11         System.out.println(name+" learn "+cName);12     }13 }

实例化对象

1 public class Test01{ 2     public static void main(String[] args){ 3          4         // 通过Student类创建对象 5         /* 6         Student stu; 7         stu = new Student(); 8         */ 9         10         // stu是Student的一个对象,也是Student的一个实例11         // new 操作就是实例化过程12         Student stu = new Student();13         // 给属性赋值(.语法)14         stu.name = "张三";15         stu.sid = "001";16         // 调用方法17         stu.learn("java");18         19         Student stu2 = new Student();20         stu2.name = "李四";21         stu2.sid = "001";22         stu2.learn("c++");23         24     }25 }

 

6. 局部变量和成员变量 (★★★)

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

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

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

public void learn(String cName){        // 方法中定义的局部变量        System.out.println(name+" learn "+cName);                // 语句块中定义局部变量        {            int count = 10;            System.out.println(" count "+count);            System.out.println("cname"+cName);        }                // System.out.println(" count "+count);}

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

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

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

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

7. 属性的声明

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

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

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

  对象内存图:

 

8.面向对象编程思维 (★★★★★)

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

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

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

定义类1

1 public class Phone{ 2      3     String brand; 4     String type; 5     float price; 6      7     public void showInfo(){ 8         System.out.print("品牌:"+brand); 9         System.out.print(",型号:"+type);10         System.out.println(",价格:"+price);11     }12     13     public void play(Music music){14         System.out.println("正在用"+brand+type+"播放<<"+music.name+">>歌曲");15         music.showInfo();16     }17 }

定义类2

1 public class Music{ 2      3     String name; 4     String actor; 5     int times; 6     String content; 7      8      9     public void showInfo(){10         System.out.println("-- "+name+" --");11         System.out.println("演唱者:"+actor);12         13         int h = times / 3600;14         int m = times % 3600 / 60;15         int s = times % 60;16         17         System.out.println("时长:"+h+":"+m+":"+s);18         System.out.println(content);19     }20 }

实例化对象

1 public class Test01{ 2     public static void main(String[] args){ 3          4         Music music = new Music(); 5         music.name = "向天再借五百年"; 6         music.actor = "韩磊"; 7         music.times = 356; 8         music.content = "沿着江山起起伏伏温柔的曲线,\n放马爱的中原爱的北国和江南"; 9         10         Phone phone = new Phone();11         phone.brand = "Apple";12         phone.type = "iPhone XR";13         phone.price = 5999.0f;14         15         phone.play(music);16         17     }18 }

小总结

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

java中一切都是对象。

9. 抽象 (★★★★)

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

抽象的步骤:

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

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

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

2)抽象一个下载类(例如迅雷下载)

  [1] DownLoad类

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

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

10. 类图(★★)

1)+ public / – private

 

 

转载于:https://www.cnblogs.com/abcdjava/p/10738358.html

你可能感兴趣的文章
day09_request&response学习笔记
查看>>
如何设置 Kubernetes 资源限制
查看>>
以太坊学习之开发编译部署调用智能合约
查看>>
Android 自定义 permission
查看>>
[20171225]没有备份数据文件的恢复.txt
查看>>
精通SpringBoot——第五篇:写一个spring-boot-starter包
查看>>
Json学习
查看>>
Airbnb: React Native 从选择到放弃
查看>>
Eclipse中Tomcat配置问题
查看>>
Honda Connect应用程序泄漏超过50,000名用户的个人信息
查看>>
Fujikura Ltd联合NTT Docomo Inc开展测试,要将直接甲醇燃料电池用于灾区应急场景中...
查看>>
Linux下使用split按行数进行切割
查看>>
英国伦敦成为首个获得区块链技术领域专利的国家
查看>>
盘点2015年英特尔旧金山IDF峰会上的黑科技
查看>>
解读《新一代人工智能发展规划》,企业如何才能迎来产业高潮
查看>>
「镁客·请讲」云从孙庆凯:不能盈利再多技术也是枉然,2018年将是市场洗牌期...
查看>>
造作吧!让AirSelfie迷你无人机带你随时随地体验航拍
查看>>
SQL性能优化
查看>>
李开复说明年有一批AI创企会倒闭,不想死的创业公司需要警惕什么?
查看>>
U盘安装Ubuntu 16.04出现:Failed to load ldlinux.c32
查看>>