当前位置:首页 > JAVA教程 > JAVA基础

08JAVA面向对象

1.概述

面向过程:当实现一个功能时,每一个具体的步骤都要亲力亲为,处理每个细节
面向对象:当实现一个功能时,不关心具体步骤而是找具有该功能的人,帮忙处理

2.类和对象

【1】类:一组相关属性行为的集合,可看作是一类事物的模版
属性:该事物的状态信息
行为:该事物能够做什么
【2】对象:一类事物的具体体现,对象是类的一个实例

  • 类是抽象的对一类事物的描述
  • 对象是体力的是一类事物的实例
  • 类是对象的模版,对象是类的实体

3.类的定义

【1】格式

public static ClassName {   //成员变量   //成员方法 } 
  • 1
  • 2
  • 3
  • 4

成员变量:对应事物的属性
成员方法:对应事物的行为(去掉static)

4.对象的创建和使用

【1】导包:指出需要使用的类在什么位置

import 包名称.类名称
  • 1

对于和当前类属于同一个包的情况,可以省略导包语句
【2】创建

//格式 类名称 对象名 = new 类名称(); 
  • 1
  • 2

【3】使用
A.使用成员变量:对象名.成员对象名
B.使用成员方法:对象名.成员方法名(参数)

TIPS:
如果成员变量没有赋值,将会有一个默认值,规则和数组一样

5.一个对象的内存图

成员方法保存的是一个地址值

6.两个对象使用同一个方法的内存图

7.两个引用指向同一个方法的内存图

8.使用对象类型作为方法的参数

9.使用对象类型作为方法的返回值

10.成员变量和局部变量的区别

【1】定义的位置【重点】
局部变量:在方法的内部
成员变量:在方法的外部,直接写在类之中
【2】作用的范围不一样【重点】
局部变量:只有在方法中可以使用
成员变量:整个类都可以用
【3】默认值不一样【重点】
局部变量:没有默认值,必须手动赋值
成员变量:如果没有默认值,会像数组一样自动赋默认值
【4】内存的位置不一样【了解】
局部变量:栈内存
成员变量:堆内存
【5】生命周期不一样【了解】
局部变量:随着方法进栈而诞生,方法出栈而消失
成员变量:随着对象创建而诞生,对象被垃圾回收而消失

11.面向对象的三大特征之封装

【1】封装:把一些细节信息隐藏起来,对外界不可见
A.方法就是一种封装
B.关键字private也是一种封
【2】继承
【3】多态

12.private关键字的作用以及使用

【1】无法阻止不合理的数据被设置进来,用private来解决
【2】使用private后,本类中依然可以随意访问,但超出本类范围之外就不能直接访问了
【3】间接访问private变量,定义一对getter,setter方法
【4】setter/getter命名规则:
getter:不能有参数,返回值类型和成员变量对应
setter:不能有返回值,参数类型和成员变量对应

13._this关键字的作用

【1】当局部变量和类的成员变量重名时,根据“就近原则”,优先使用局部变量
【2】如果需要访问本类当中的成员变量,需要使用格式:

this.成员变量名
  • 1

【3】通过谁调用的方法,谁就是this

14.构造方法

构造方法是专门用来创建对象的方法,当我们通过关键字new来创建对象时,其实是在调用构造方法
【1】格式:

public 类名称(参数类型 参数名称) {   方法体} 
  • 1
  • 2
  • 3

TIPS:
【1】构造方法的名称必须和类名称完全一样,就连大小写也要一样
【2】构造方法不要写返回值类型,连void都不写
【3】构造方法不能return一个具体的返回值
【4】如果没有任何构造方法,那么编译器会默认赠送一个构造方法,没有参数,方法体什么都不做
【5】一旦编写了至少一个构造方法,那么编译器将不再赠送
【6】构造方法也是可以进行重载的
重载:方法名称相同,参数列表不同

//全参构造方法 public Student(String name, int age){   this.name = name;   this.age = age; } Student stu = new Student(name:a, age:b); 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

15.标准的类

【1】所有成员变量都要使用private修饰
【2】为每一个成员变量编写一对getter/setter
【3】编写一个无参数的构造方法
【4】编写一个全参数的构造方法

这样的类也叫做java bean

快速创建方法:
【1】
【2】code->generate->getter and setter
【3】code->generate->constructor->select None
【4】code->generate->constructor->select all
快捷键:control+enter


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!