Java_Day5 面向对象原理、封装

Day5

1、面向对象思想

1.1 、概述

​ 面向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去操作实现。

面向过程:当需要实现一个功能的时候,每一个具体的步骤都要亲力亲为,详细处理每一个细节。

三大基本特征:封装、继承、多态、(抽象)

1.2 、类和对象

类:是一组相关属性行为的集合。类是对一事物的描述,是抽象的。

  1. 属性:事物的状态信息
  2. 行为:事物能够做什么

**对象:**是类事物的具体体现,对象是一类事物的实例,是具体的。

类与对象的关系:类是对象的模板,对象是类的实体

1.3、类的定义

格式:

public class ClassName {

​ //成员变量

​ //成员方法

}

**定义类:**就是定义类的成员,包括成员变量和成员方法

**成员变量:**和以前定义的变量一样,只不过位置发生了变化,在类中,方法外

成员方法:和以前定义方法几乎一样,只不过把static去掉

public class Student {
	//成员变量
	String username; //姓名
	int age; //年龄
	//成员方法
	public void study(){
		System.out.println("学习的一个类");
	}
	public void eat(){
		System.out.println("吃饭!");
	}
}

1.4、使用对象

创建对象: 类名 对象名 = new 类名();

访问类中成员变量和成员方法: 对象名.成员变量 对象名.成员方法

public class Demo {
	public static void main(String[] args) {
		//创建对象的方法
		Student student=new Student();
		student.username="张三";
		student.age=30;
		student.eat();
		student.study();
		System.out.println(student.username);
		Student student1=new Student();
		System.out.println(student1.username);
	}
}
1.5、成员变量默认值

整型:byte, short, int, long 0

浮点型:float,double 0.0

字符型(char) : ‘/u0000’

布尔类型:false

引用类型:数组, 接口, 类 null

还的不理解

  • 两个对象使用同一个方法 在栈内存中运行方法,遵循"先进后出的原则"

    2. 两个对象名称指向同一个对象的内存
    
    创建多个对象时,方法信息不能每次都存放在堆内存中,因为方法信息是一样的,所以只需要在堆内存的对象中存储方法的标识即可,在方法区中,存放我们具体的方法信息。
    
    
    **使用对象类型作为方法的参数**
    
    当一个对象作为参数,传递到方法当中时,实际上传递进去的是对象的地址值。
    
    
    **使用对象类型作为方法的返回值**
    
    当使用一个对象类型作为方法的返回值时:返回值其实就是对象的地址值。
    
1.6、成员变量和局部变量的区别

在类中的位置不同:

​ 成员变量:在类中、方法外

​ 局部变量:在方法中或者方法声明上

作用范围也不一样:

​ 成员变量:整个类通用

​ 局部变量:在方法中

初始化不同:

​ 成员变量:有默认值

​ 局部变量:没有默认值(直接输出会报错),必须先定义,赋值,再使用

在内存中的位置不同:

​ 成员变量:堆内存

​ 局部变量:栈内存

生命周期不同:

​ 成员变量:随着对象的创建而诞生,随着对象被垃圾回收而消失

​ 局部变量:随着方法进栈而诞生,随着方法出栈而消失


2、封装

封装就是将一些细节信息隐藏起来,对于外界不可见。

在Java中的体现:

  1. 方法就是一种封装
  2. 关键字private也是一种封装
原则:

把我们类中的属性隐藏起来,如果要访问我们的某个属性,提供公共方法让他访问。

封装步骤:

  1. 使用private(私有的) 修饰属性

  2. 间接访问private成员变量,就是定义一对Getter/Setter方法

    对于boolean类型,调用时方法是调用 对象名.is方法名()

封装的操作----------private修饰符
  1. private是一个权限修饰符,代表最小权限
  2. 可以修饰成员变量,也可以修饰方法
  3. 被private修饰后的成员变量和成员方法,只能在本类中使用
this含义

this代表所在类的当前对象的引用,及对象自己的引用

在重名的情况下,起到区分的效果

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值