第七章 面向对象编程
来源:互联网 发布:数控攻牙编程 编辑:程序博客网 时间:2024/05/18 14:28
java 笔记 第七章 面向对象编程
一、类和对象的概述
1.理解面向对象
结构化程序设计 :(c语言 单片机、嵌入式开发)
程序 = 算法 + 数据结构
算法第一,数据结构第二
面向对象程序设计OOP(Object-Oriented Programming)
程序 = 对象 + 对象+ ........
数据第一,算法第二
关键:让每一个对象负责执行一组相关任务
面向对象编程的特性
- 万物皆对象
- 程序是一组对象彼此之间在发送消息
- 每个对象都有自己的内存占用,可以组成更大的对象
- 每个对象都有类型,特定类型的所有对象可以接收相同消息
2.类和对象的概念、区别联系
概念:类 :是创建对象的模板和蓝图
是一组类似对象的共同抽象定义。
类:具备相同特征,同一类事物的集合。
类 是对象的类型,集合,模板。
对象:客观存在、具体的东西
区别:
- 类是静态定义
- 对象是动态实例
- 程序代码操作的是对象而不是类
- 建模得到的是类而非对象
联系:
- 类是对象的定义
- 对象的产生离不开类这个模板
- 类存在的目的是实例化得到对象
3.对象的创建和使用
类是由属性(静态特征)和方法(动态特征)
属性也叫全局变量,成员变量,也叫实例变量(对象也叫实例)
全局变量:在方法体外面声明的变量
特点:在类中的任何方法中都可以直接访问。
全局变量可以不初始化而直接使用,因为JVM 会为所有的全局变量赋予一个默认值。
局部变量:必须初始化,JVM不会为局部变量赋予默认值。
特点:在类中的任何方法中都可以直接访问。
全局变量可以不初始化而直接使用,因为JVM 会为所有的全局变量赋予一个默认值。
局部变量:必须初始化,JVM不会为局部变量赋予默认值。
创建对象语法:类名 对象名 = new 类名();
Student s = new Student();
使用导航符“.”来访问对象的属性和方法
s.name //s.introduction();
Student s = new Student();
使用导航符“.”来访问对象的属性和方法
s.name //s.introduction();
对象的保存
栈:保存某个类(Student)的对象在堆中的地址 相当于一个遥控器 (Student是一个类)
堆:保存属性和方法的内存空间。属性和方法分开保存。
属性: 在堆中给对象的属性分配内存,有多少个对象就会分配多少份内存。
方法:一个类中的方法,只会占用一块内存空间,为所有对象共享。
s: 对象名、引用名称,对象的地址,保存在占中
堆:保存属性和方法的内存空间。属性和方法分开保存。
属性: 在堆中给对象的属性分配内存,有多少个对象就会分配多少份内存。
方法:一个类中的方法,只会占用一块内存空间,为所有对象共享。
s: 对象名、引用名称,对象的地址,保存在占中
栈: 堆:
Student s = new Student();
Student s = new Student();
创建对象:每创建一个对象,都会在堆中为对象的属性分配独立的内存空间
但是不会每次都为方法分配独立的内存空间。
一个类中的所有方法 在内存中都只各自占用一份内存空间,为该类所有的对象共享。
这是因为,方法一般都是用来操作数据的,对于不同对象来说,只是操作的数据不同,
而操作数据的方式是相同的,所以没有必要为每一个对象的方法都分配一份独立的内存空间。
但是不会每次都为方法分配独立的内存空间。
一个类中的所有方法 在内存中都只各自占用一份内存空间,为该类所有的对象共享。
这是因为,方法一般都是用来操作数据的,对于不同对象来说,只是操作的数据不同,
而操作数据的方式是相同的,所以没有必要为每一个对象的方法都分配一份独立的内存空间。
方法语法:访问修饰符 返回值类型 方法名称(参数列表){方法体}
public void introduction(){
}
方法的签名:方法名+参数列表;
注意:在同一类中,不允许有签名相同的方法存在。
访问修饰符 :
作用:用来限制该方法的访问范围(权限)
public 、protected(包+继承) 、缺省(包访问权限) 、 private
public: 公有的,任何对象都可以访问
public void introduction(){
}
方法的签名:方法名+参数列表;
注意:在同一类中,不允许有签名相同的方法存在。
访问修饰符 :
作用:用来限制该方法的访问范围(权限)
public 、protected(包+继承) 、缺省(包访问权限) 、 private
public: 公有的,任何对象都可以访问
返回值类型:该方法执行之后对外提供的结果的类型
没有返回值 使用关键字 void
没有返回值 使用关键字 void
参数列表:执行该方法所需要的数据
1 0
- 第七章 面向对象编程
- 第七章-面向对象高级编程
- learn python第七章:面向对象编程 (第一节:类)
- 第七课 面向对象编程(五)
- 【第七课】面向对象编程---抽象类
- 第七章:浅谈面向对象
- 《面向对象》第七章 总结
- C#学习之路,学习笔记 第七章 面向对象编程:类和对象(一)
- 第七章:面向对象(三)
- 【第七课】面向对象编程---多态的基础
- 【第七课】面向对象编程---Final的使用
- 面向对象编程范式##第三章面向对象编程范式
- 第十五章:面向对象编程
- 第十五章 面向对象编程
- 第十五章 面向对象编程
- 第十五章. 面向对象编程
- 03章 面向对象编程
- 第六章-面向对象编程
- 数据结构(C语言版)严蔚敏 实习2 停车场管理 问题
- Maven学习系列--02一个简单的Maven项目
- c++二维动态数组分配与delete
- memcmp函数实现——string.h库函数
- iOS 之hitTest学习
- 第七章 面向对象编程
- 黑马程序员--第四篇:包、权限修饰符、内部类、匿名内部类
- Palindrome Linked List
- oracle SQL%ISOPEN
- 【数学-求组合数的最小公倍数】HDOJ CRB and Candies 5407
- java学习:利用JScrollpane增加文本域滚轮(滚动条)
- Oracle OLAP 与 OLTP
- Just a note!
- STM32库函数(1):库文件stm32f10x_usart.c内的函数