学习笔记——面向对象

学习笔记——面向对象

1. 什么是面向对象
一种看待问题的思维方式,着眼于找到一个具有特殊功能的具体个体,然后委托这个个体去做某件事情,我们把这个 个体就叫做对象。 是一种更符合人类思考习惯的思想【懒人思想】,可以将复杂的事情简单化,将程序员从执行者转换成了指挥者 使用面向对象进行开发,先要去找具有所需功能的对象来用,如果该对象不存在,那么创建一个具有所需功能的对象

2. 面向过程
一种看待问题的思维方式,在思考问题的时候,着眼于问题是怎样一步一步解决的,然后亲力亲为的去解决问题的过程。

3. 面向对象与面向过程的对比
举例说明:
案例一:我想要吃宫保鸡丁
面向过程 面向对象
1.自己去买菜 1.委托一个会砍价的人帮忙去买菜
2.自己择菜 2.委托一个临时工帮忙择菜
3.自己做菜 3.委托一个厨师帮忙做菜
4.自己开始吃 4.自己开始吃
案例二:小明是一个电脑小白,想要配一台电脑,买完零件后需要运到家 里,组装完成后打开 电脑玩游戏
面向过程 面向对象
1.小明补充电脑知识 1.委托一个懂电脑的朋友去帮忙买零件
2.小明去买零件 2.委托一个能跑腿的人去买零件
3.小明把零件带回家里 3.委托一个快递小哥帮小明送到家里
4.小明组装电脑 4.委托一个会组装电脑的人帮小明组装电脑

4. 总结一下
a.都是看待问题的一种思维方式,都能解决问题
b.面向过程着眼于所有的事情按照步骤来实现
c.面向对象着眼于找到一个具有特殊功能的对象,委托这个对象去做某 件事情。
PS:面向对象是一种思想,并不是一门编程语言

5. 什么是类
一类具有相同属性和功能的实体的集合,类是Java语言的基本单位

6.什么是对象
在一个类中,一个具有特殊功能的实体,能够解决特定的问题,对象也被称为实例

7. 类与对象的关系
类是对象的抽象(模板),对象是类的具体体现(实例)
类是抽象的,不占用内存,而对象是具体的,占有内存空间。

8. 类的声明

语法: 访问权限修饰符 class 类名 {    
            //属性    
            //方法 
            } 
说明:
     a.访问权限修饰符:只能是public或省略不写    
     b.类名只要是一个合法的标识符即可,但是要求:首字母必须大写,遵循帕斯卡命名法     
     c.尽量使用单个或多个有意义的单词连接而成
 public class Person{
 }
  public class Student{
}

9. 创建对象及内存分配
9.1 对象的创建

 对象的创建过程也被称为对象的实例化过程
 语法:类名 对象名 = new 类名();
 调用属性:
   对象名.属性名
 调用方法:
  对象名.方法名(实参);
        
//演示对象的创建,跨类进行调用成员方法以及访问成员变量 
//测试类:含有main函数得类被称为测试类 
public class TestPerson {    
public static void main(String[] args)   {        
//1.创建对象        
//语法:类名 变量名称  = new  类名();        
Person xiaoMing = new Person();
        //2.调用对象属性        
        //语法:对象.属性名        
        xiaoMing.name = "小明";        
        xiaoMing.age = 10;       
         xiaoMing.gender = '男';       
          //3.调用对象方法       
           //语法:对象.方法名()        
           xiaoMing.eat();    
           } 
           }
//实体类:表示具有某些特征或者某些行为的类 
//描述多个对象所具有的共同特征和共同行为 
//需求:人类,具有姓名,年龄,性别等的特征,可以吃东西,可以奔跑,,,,   
class Person {    
//第一部分    
//成员变量:特征【名词】    
//非静态成员变量    
String name;//null    
int age;//0    
char gender;//\u0000
 //第二部分    
 //成员方法:行为【动词】    
 //非静态成员方法    
 public void eat() {        
 System.out.println("eating~~~~");    
 } 
}

9.2 对象内存分配***
程序运行时,操作系统会分配三块主要的内存空间
:直接存放基本类型数据,和引用类型的地址 栈空间比较小,存取速度相对较快 先进后出
:存放引用类型的实际数据部分 堆空间比较大,存取速度相对较慢
方法区:保存类的信息(包括类的名称、方法信息、字段信息);方法区中有一块空间叫串池 (常量池),用来存放字符串常量;另一块空间叫静态区用来存储静态数据。
在jdk1.7之后常量池、静态区作为堆中一部分,方法区的概念弱化

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值