对象和类
来源:互联网 发布:怎么打开vc软件 编辑:程序博客网 时间:2024/06/06 09:52
编程思想:需求- ->建立思路- ->目标代码
面向过程的思想
自顶向下 逐步求精 伪代码——代码
从程序的执行过程入手,将完整的过程细化成多个子过程,再将子过程细化,直至完成代码为止
非结构化编程:Eg: goto
结构化编程: Eg: 函数
面向对象的思想
1)对象的基本概念
对象:一切客观存在的事物都是对象;
小对象组成大对象、对象间调用彼此方法
计算机中的对象:JVM中连续的存储空间(数据)
2)对象的定义:对象一定具备自己的特征和行为
对象的特征:对象有什么—->将来用数据代替特征描述,称之为对象的属性
对象的行为:对象能做什么—->将来用函数来代替对象的行为,称之为对象的方法
3)对象和对象之间会通过某种方式产生联系:
方法调用的关系:一个对象可以调用另外一个对象的方法,从而在这两个对象中产生关联
属性组合方式:一个对象的属性可能又是一个对象
4)面向对象的特点
各司其职
组成系统的每一个对象,其功能应该 单一
可重用性
对于类似的功能,不同的系统可以重复使用相同的代码
可扩展性
在不修改原有系统的前提下,对系统的功能进行扩展
弱耦合性
对象和对象之间的联系应尽可能的弱化
5)解决客观问题:
面向对象的思想:
首先选择符合要求的对象,让对象之间彼此联系,彼此配合,达到我们的目的。
类(class)
1)类的概念
多个相同或同类型的对象所抽象出来的共性。
类就是对象的模板,用来定义对象的属性和方法。
2)类的组成
属性:描述对象的特征
定义位置:类的内部,方法的外部。
别称:成员变量、实例变量
定义属性=定义变量
实例变量的默认值规则与数组元素默认值一样
和局部变量发生命名冲突时局部优先
class Student{ //定义学生类 String name; int age; boolean sex; double score; //学生的学习方法 public void study(){ System.out.println("我爱学习~~~"); } //学生的打招呼方法 public void sayHello(){ System.out.println("雷侯啊!"); }}
方法
定义位置:类的内部,其他方法的外部。
语法:
访问权限修饰符 返回值类型 方法名(参数表)抛出的异常{ //方法体}
方法的声明:对象能做什么
方法的实现:对象怎么做
对象
1)概念:
通过类(模板)创建的实例,每个实例(对象)拥有独立的特征。
2)创建对象:
语法:
new 类名();new Student();new Teacher();
创建什么类型的对象就可以给什么类型的引用赋值
Student stu;stu = new Student();Teacher tea;tea = new Teacher();
3)访问对象中的属性与方法:
语法:
访问属性:引用名.属性名给属性赋值:引用名.属性名 = 值;**注意:属性的数据类型
例:创建学生对象并使用属性与方法
成员变量与局部变量的区别
方法的重载(OverLoad)
概念:在一个类中可以定义多个同名的方法,参数表不同,屏蔽使用时的差异。
语法:方法名相同,参数个数、类型、顺序不同。返回值类型、修饰符无要求。
Eg:
编译时多态
调用时编译器会根据参数匹配相应的方法
构造方法
1)概念:构造方法是一种特殊的方法,创建对象时自动调用。
2)作用:通常在创建对象时,为属性赋值,完成初始化的任务。
3)语法:
方法名与类名一致(注意大小写)
没有返回值类型
创建对象时会自动调用,不可手动调用例:为Student类添加无参构造方法:
运行结果:
this is Student()this is Student()
Eg:给构造方法添加参数:
Eg:使用参数为属性赋值:
注意
1、如果一个类没有定义任何构造方法,编译器会默认提供无参构造。
2、如果手动添加构造,则默认提供的无参构造就会消失
3、构造方法也可以重载,遵循重载规则
对象的创建过程
- 分配空间:为属性赋予默认值
- 初始化属性:为属性赋初值(动态初始化代码块)
- 调用构造方法:可以再次为属性赋值
动态图例:
参数传递规则
基本类型传值,两者之间任何一方更改不影响另一方
引用类型(对象、数组)传地址(形参和实参会指向内存中的统一对象)两者之间一方更改,影响另一方
动态图例:
this关键字
1)This :代表当前对象引用,成员变量与局部变量命名冲突时可以使用this.来明确该变量为成员变量。
例
运行结果:
解决方案:使用this.变量名,明确该变量为成员变量
运行结果
this():访问其他构造方法,提高构造方法的复用性
※注意:this()只能出现在构造方法的第一行
- 【面向对象】对象和类
- 面向对象--类和对象
- 面向对象(类和对象)
- 面向对象-类和对象
- 面向对象----类和对象
- 类和对象
- vfp对象和类
- 类和对象
- Chap02:类和对象
- 类、对象和方法
- C#类和对象
- 第一章 类和对象
- 类和对象
- 对象、类和结构
- 类和对象
- 类和对象
- 类和对象
- 类和对象
- HDU6038 Functions
- 一个简单的Memcache和PDO封装类
- L1-046. 整除光棍
- Linux的基础入门
- C#查找容器中是否包含某个状态
- 对象和类
- 菜鸟心历之路(0)
- 怎么快速上手Mybatis(Xmind思维图)
- Android开发:最全面、最易懂的Android屏幕适配解决方案
- 图书管理系统
- 人工智能之我见(1)
- js里的算数运算符
- I
- L1-047. 装睡