博客
关于我
Java-面向对象
阅读量:73 次
发布时间:2019-02-25

本文共 2083 字,大约阅读时间需要 6 分钟。

一,面向对象的概念

面向过程:C语言

面向对象:Java、C++、Python

面向过程和面向对象都是编程思想

面向过程和面向对象的区别:

  1. 面向过程:重点放在程序的功能是如何执行的,身份是执行者
  2. 面向对象:重点放在程序的功能可以找谁来完成,身份是指挥者,面向对象的思想更加贴近实际生活

二,类和对象

类:数据类型,一类事物的集合

  1. 基本信息

  2. 行为

对象:根据类创建出来一个实体(实例),这个对象具备了这个类中所有的基本信息和行为

  1. 基本信息
  2. 行为

例如:

类:

​ 护士类

1.	基本信息:工号、姓名、部门  	2.	行为:打针,护理

对象:

​ 护士对象:

  1. 基本信息:89757、马磊、肛肠科
  2. 行为:具体的打针动作,如何进行护理

代码中:基本信息 -> 属性、行为 -> 方法

三,成员和局部

成员:全局,定义在类中,方法外

  1. 成员变量
    1. 默认值:成员变量有默认值,默认值与数组的默认值相同;局部变量没有默认值
    2. 作用范围:成员变量的作用范围是整个类;局部变量的作用范围是定义它的方法
    3. 生命周期:局部变量在方法被调用后进入栈内存,方法执行完毕后,局部变量随着方法的出栈而被释放;成员变量随着对象的创建而出现,当对象释放后,成员变量才被释放。
    4. 当成员变量和局部变量重名时,会根据 “就近原则” 进行调用
  2. 成员方法

局部:定义在方法中

​ 1. 局部变量

四,类的定义和对象的创建

4.1 类的定义

格式:

public class 类名 {    	属性	方法}
public class Hero {    	public String name;	public int hp;	public boolean gender;	public int level;	public int exp;	public void attack(){    	}	public void back(){    	}	public void shopping(){    	}}

4.2 对象的创建

格式:

数据类型 对象名 = new 数据类型();
Hero h = new Hero();

4.3 属性和方法的调用

格式:

对象.方法名();赋值:	对象.属性 = 值;获取:    数据类型 = 对象.属性;打印:    System.out.println(对象.属性);
h.attack();赋值:	h.name = "亚索";获取:	int hp = h.hp;打印:	System.out.println(h.exp);

五,将引用数据类型作为方法的参数和返回值

如果传递的参数是引用数据类型,那么形参接收到的是实参的地址,这个形参指向这个实参在堆内存中的地址。

如果方法的返回值是引用数据类型,那么接收这个返回结果的变量接收到的就是返回的地址,这个变量指向返回值在内存中的地址。

注:

​ 在将引用数据类型的对象进行传递时,一定要避免空指针异常(NullPointerException)。

​ 什么时候会发生空指针异常:一个引用变量没有指向指定的存储空间或者这个引用变量的地址是 null 时,这个引用变量就是一个空对象,当使用空对象进行属性或者方法的调用时,就会发生空指针异常。

六,构造函数(方法、器)

6.1 构造函数的特点

  1. 构造函数的函数名与类名一致
  2. 构造函数没有返回类型,连 void 都不能有
  3. 每次创建对象时都会执行构造函数
  4. 每一个类中都有一个默认的隐式的无参的构造函数
  5. 一旦构造函数重载了,那么原来的默认构造函数就不存在了,如果还要使用无参构造函数来创建对象,就必须再重新写出这个无参构造函数

6.2 构造函数的作用

  1. 创建对象
  2. 创建对象时对属性进行初始化

6.3 构造函数的重载

定义若干个构造函数,参数列表不同

作用:创建对象的同时对属性进行初始化

public Employee(String a, int b, String c){    		name = a;		level = b;		report = c;}
Employee e = new Employee("张三",4,"良好" );

6.4 this 关键字

在创建对象后,可以通过 this 关键字来获取该对象的地址(可以通过 this 来表示当前创建出来的对象),所以我们可以使用 this 来明确变量是当前类型中对象的属性。

public Employee(String name, int level, String report){    		System.out.println("this的地址:"+this);		this.name = name;		this.level = level;		this.report = report;}

this 的作用:

  1. 调用属性、调用方法 (this可以省略)

  2. 调用本类的其他构造函数

    作用:当多个构造函数中出现了重复的初始化语句时,可以使用 this 调用其他构造函数来简化代码完善对象属性的赋值

    注:构造方法的调用只能出现在其他构造函数的第一行

转载地址:http://qss.baihongyu.com/

你可能感兴趣的文章
MySQL5.7新增Performance Schema表
查看>>
Mysql5.7深入学习 1.MySQL 5.7 中的新增功能
查看>>
Webpack 之 basic chunk graph
查看>>
Mysql5.7版本单机版my.cnf配置文件
查看>>
mysql5.7的安装和Navicat的安装
查看>>
mysql5.7示例数据库_Linux MySQL5.7多实例数据库配置
查看>>
Mysql8 数据库安装及主从配置 | Spring Cloud 2
查看>>
mysql8 配置文件配置group 问题 sql语句group不能使用报错解决 mysql8.X版本的my.cnf配置文件 my.cnf文件 能够使用的my.cnf配置文件
查看>>
MySQL8.0.29启动报错Different lower_case_table_names settings for server (‘0‘) and data dictionary (‘1‘)
查看>>
MYSQL8.0以上忘记root密码
查看>>
Mysql8.0以上重置初始密码的方法
查看>>
mysql8.0新特性-自增变量的持久化
查看>>
Mysql8.0注意url变更写法
查看>>
Mysql8.0的特性
查看>>
MySQL8修改密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
查看>>
MySQL8修改密码的方法
查看>>
Mysql8在Centos上安装后忘记root密码如何重新设置
查看>>
Mysql8在Windows上离线安装时忘记root密码
查看>>
MySQL8找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案
查看>>
mysql8的安装与卸载
查看>>