Java面向对象--类与对象
2023-12-25 16:29:14
面向对象 (OOP:object-oriented programming )
类与对象
文章目录
面向对象程序设计
- 开发方法
- 面向功能划分软件结构
- 自顶而下
- 最小的子系统是方法
- 制约了软件的可维护性和可扩展性
- 面向对象开发
- 把软件系统看成各种对象的集合
- 系统结构较稳定
- 子系统相对独立
- 软件可重用性,可维护性和可扩展性强
1、对象
用来描述客观事物的一个实体,由一组属性和方法构成
- 万物皆对象
- 一段程序实际上就是多个对象通过发送消息来告诉彼此要干什么
- 从内存角度而言每一个对象都是由其他更基础的对象组成的
- 每一个对象都有类型
- 同一类型的对象可以接收相同的信息
Grady Booch 对对象做了一种更为简介的描述:
对象具有状态、行为及标识
这意味着对象可以拥有自己的内部数据(赋予其状态)、方法(用于产生行为),同时每一个对象都有别于其他对象。也就是说,每一个对象在内存中都有唯一的地址。
注: 这个说法并不全面,对象可以保存在不同的机器或内存地址中,甚至可以保存在磁盘上。在上述情况中,对象的标识(identity)就需要用其他方式而非内存地址来表示
对象的特征
- 属性——对象具有的各种特征
- 每个对象的每个属性都拥有特定值
- 方法——对象执行的操作
类和对象的关系
- 类是抽象的概念,仅仅是模板
- 比如说:“人”
- 对象是一个你能够看得到、摸得着的具体实体
Java 是面向对象的语言
- 所有Java程序都以类class为组织单元
- 关键字class定义自定义的数据类型
被class修饰的就是类
public class HelloWorld{
public static void main (String[] args){
System.out.println("Hello World!!!")
}
}
Java类模板
- 类将现实世界中的概念模拟到计算机程序中
public class 类名{ //类名首字母大写
//定义属性部分
属性1的类型 属性1:
...
属性n的类型 属性n:
//定义方法部分
方法1:
...
方法m;
}
定义类的步骤:
1.定义类名
2.编写类的属性
3.编写类的方法
如何创建和使用对象
- 使用对象的步骤
- 创建对象
- 类名 对象名 = new 类名();
School school=new School();
- 引用对象成员:使用 “.” 进行以下操作
- 引用类的属性: 对象名.属性
- 引用类的方法: 对象名.方法名()
center.name="清华大学";//给name属性赋值 center.showCenter(); //调用showCenter()方法
- 创建对象
return 方法的返回值
- 两种情况
- 如果方法具有返回值,方法中必须使用关键字return返回该值,返回值类型为该值的类型
- 返回值只能有一个
public class Student{ String name="张三"; public String getName(){ return name; //作用:跳出方法、返回结果 } }
- 如果方法没有返回值,返回值类型为void
public String showName(){//String 表示showName方法有返回值 并且返回值类型是String
return "清华";//return后面跟返回值 只能执行一次 return
//return 1.结束当前方法 2.返回 return 后的数据
//return 也可以用在没有返回值的方法中
}
方法调用
- 方法之间允许相互调用,不需要知道方法的具体实现,实现重用,提高效率
情况 | 举例 |
---|---|
Student类的方法a()调用Student类的方法b(),直接调用 | public void a(){ b();//调用b() } |
Student类的方法a()调用Teacher类的方法b(),先创建类对象,然后使用 “.” 调用 | public void a(){ Teacher t=new Teacher(); t.b(); //调用Teacher类的b() } |
1.2对象具有接口
- 创建抽象数据类型(即“类”)是面向对象编程的一个基本概念。
- 因为类描述了一系列具有相同特征(即数据元素)和行为(即功能方法)的对象,而即便是浮点数这种内置数据类型也具有一系列的行为和特征,所以类其实就是数据类型。
文章来源:https://blog.csdn.net/m0_69005620/article/details/135199284
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!