java面向对象初级

昨天花了一天时间看了面向对象初级的部分,虽然以前也怀疑30天能否学完java,但是这回开始之后我确定,这零基础30天是不太可能的。
本章对应b站韩顺平30天学会java 视频教学的192-263部分。主要讲解的是以下几个部分:
面向对象初级思维导图
我会根据笔记及视频内容做简要摘要,方便记忆以及之后面试。

类与对象

类的介绍

  1. 类是自己定义的一个变量类型,是对象的抽象的表现形式。
  2. 类符合人们的编程逻辑,可以把事务的特征提起出来:特征–> 对象模板–> 一个一个实例。
  3. 类一般定义在main方法下方以 class + 类名+{}来定义。
  4. 在本章节中类包含3个部分:成员变量,构造器 和方法(之后还会加入如代码块内部类等)

属性的介绍

  1. 属性的定义语法为:访问修饰符(public。。。)+ 属性类型(String,int.可为引用类型基本类型)+属性名
  2. 如果不给属性赋值的话,属性会根据给的属性类型赋上默认值(int: 0, String: null, …)

关于对象和访问对象属性

Cat cat = new Cat();//创建对象,创建一个猫类并且让名为cat的索引指向这个猫类
cat.name;//使用对象,cat的名字

这里讲解了类和对象的内存分配机制。大致为以下步骤:

  1. 首先在方法区中加载类信息(只在new时加载一次)
  2. 在new 对象的过程中,先在堆中开辟一个空间,并且分配一个地址,在此空间中生成类的成员属性,如果是基本数据类型将直接保存在堆中,如果是引用数据类型如String则会继续分配地址将地址直向方法区中,在方法区中保存string本身如:小白。
  3. 在栈中生成一个对象名,并且将它与在堆中内存空间的地址绑定在一起。
  4. 进行指定初始化如 cat.name = “小白”

以上是创建一个只有成员变量对象的简单过程

成员方法

我们可以在类中添加成员方法,就像人这个类中应该不单单拥有名字等基本信息,应该也要有会吃饭睡觉。java类也是如此。

方法的调用原理

  1. 等程序在main方法中跑时,在new完对象之后,调用对象的方法时,程序会在栈中开辟一个新的独立空间,并在次空间中执行成员方法
  2. 当成员方法执行结束之后,把结果return(可以返回任何类型,但只能有一个返回)出来返回给调用方法的地方并且继续执行下去。
  3. 重复上面的方法直到main方法在栈中执行完毕。

成员方法的定义方式

访问修饰符 返回数据类型 方法名(形参列表){
。。。
return
}

方法调用细节

  1. 同类中直接调用,方法名 + 参数
  2. 不容类要加对象名
  3. 遵循访问修饰符
  4. 要在另一个类中创建一个对象然后+.方法名。

成员方法的传参机制

如果是基本数据类型,不会影响到实际参数,会在栈中改变或者计算。
引用数据类型传递的是地址,形参会影响到实参

递归

递归就是方法自己调用自己家,需要注意要在递归方法中设置结束条件。
会在栈中一个一个开方法,在最后开的方法执行结束后,一个一个返回。
八皇后问题,汉诺塔问题后期复习时在做。

重载

  1. 方法名一致,但是方法的形参不一致。
  2. 无关返回值和返回类型
  3. 可以用三个点… 加在数据类型之后代表有多个同样类型的输入(0~多个),必须放在形参列表尾部,一个方法只能有一个可变参数,并且与array的使用方法一致。(可变参数的概念)可变参数的实参可以是数组。

作用域

  1. java中属性分为成员变量和局部变量。没有全局变量,但是python中有(global)。
  2. 成员变量作用域在整个类中,局部变量是在自己的代码块中,例如方法,代码块。
  3. 成员变量可以不赋值直接使用,有默认的值;局部变量不行必须直接赋值在使用。
  4. 成员变量可加修饰符,但局部变量不行。
  5. 成员变量的生命周期较长,局部变量生命周期较短,因为在栈中完成成员方法后,成员方法就会结束return一个值,但类还存在。

构造方法/构造器

基本语法

【修饰符】方法名(形参列表){
方法体;
}

构造器特点

  1. 方法名和类名相同
  2. 构造器没有返回值
  3. 一个类可以有多个构造器,也就是构造器的重载
  4. 如果没有自己写构造器,系统会默认一个构造器

对象创建的流程

  1. 首先加载类信息,在方法区中
  2. 在堆中给对象分配空间(地址)
  3. 完成对象初始化(1. 默认初始化 属性 = 默认值 age = 0, name = null 2. 显示初始化 属性等于成员变量 3.构造器的初始化,属性等于传入的参数 )
  4. 把在第二步创建的地址,返回给在队中的对象名

this 关键字

  1. this 是用来访问本类的属性、方法、构造器
  2. this.变量名可以用来区分局部变量,这样他们可以同名
  3. 访问成员方法的格式: this.方法名(参数列表)
  4. 访问构造器语法:this(参数列表),只能在构造器中使用
  5. this不能在类的外面用。

总结

本章讲的是比较基础的面向对象的知识。讲的是关于类的调用,创建对象,成员属性,构造器等。其中在内存中,如何创建对象的过程都十分重要。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值