黑马程序员--封装--java

本文详细介绍了Java中的封装概念,包括private关键字的作用及其如何帮助隐藏对象的属性和实现细节。此外,还深入探讨了构造方法的使用,包括其格式、特点及在对象初始化过程中的作用。

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

封装

01、封装之Private


一 封装的定义:
隐藏对象的属性及实现细节仅对外提供公共的访问方式(private 仅仅是封装的一种体现形式)

二 private 是什么,以及被他修饰的成员有什么变化

是一个关键字,表示私有的意思,它是一个访问权限修饰符,
它可以修饰成员变量以及成员方法,被他修饰的成员在其他类中不能直接访问.


02、封装的代码体现

一 如果在其他类中想访问用 private 修饰的成员变量怎么做?
在类中提供一个public 修饰的成员方法(一般如果是获取用get,如果是设置用set),返回的是 private 修饰成员变量
接下来调用这个公共的方法就可以得到私有的变量了

二 以后开发中标准代码写法
类中所有的成员变量都用 private 修饰.(上课为了讲课方便有时候是没有加私有的)

get和set不一定要成对儿出现.

get方法写法(需要有返回值类型,不需要传递参数)
set方法写法(不需要返回值类型 void ,要考虑形式参数位置需要传递什么类型的值)


*** 写一个方法的时候一定要明确写这个方法是要做什么操作(从而可以确定返回值类型,和参数列表)

03、构造方法概述和使用

一 构造方法格式及特点:
A:方法名要与类名一致
B:没有返回值类型
C:没有具体的返回值

二 构造方法的作用:
给对象进行初始化

三 给成员变量赋值
A:通过set方法给成员变量赋值(推荐使用set)
B:通过构造方法也可以对成员变量赋值
set方法它的存在就是为了给成员变量赋值
构造方法的存在主要目的是初始化对象(它可以捎带脚给成员变量赋值)


注意事项
A:如果你没有给出构造方法的话,系统会默认给出一个无参构造
B:假如你给出了构造方法,那么系统将不再提供默认构造方法(推荐永远手动给出构造方法)
C:构造方法也可以重载(其实就是参数列表不同)


04、this关键字的概述和应用


一 this 关键字代表谁?
哪个对象调用该方法, this 就代表调用这个方法的对象.


二 this的应用场景:
可以解决 成员变量和局部变量重名时,无法给成员变量赋值 的问题。


05、this关键字的标准代码写法
private String name;
		private int age;
		public Dog(String name,int age)
		{
			this.name = name;
			this.age = age;
		}
		public void setName(String name)
		{
			this.name = name;
		}
		public String getName()
		{
			return name;
		}


06、代码块儿的概述


A: 局部代码块
概念:把它定义在方法中
作用:可以让局部代码块中的数据尽可能早的消失,提高内存利用率.


B:构造代码块
概念:定义在类中方法外
作用:可以把构造方法中共性内容定义在构造代码块中.

07、对象的初始化过程
A:把Person.class文件加载到内存。(类加载器)
B:在栈内开辟一个变量空间。给P使用。
C:new Person()就会在堆内存开辟空间。
D:方法进方法区,有类名做标记。并且,
同时成员变量进堆内存并给出了默认初始化值。(name:null     age:0 )
E:对成员变量进行显示初始化
F:如果有构造代码块,可以在构造代码块中对成员变量赋值。
G:执行构造方法中对成员变量的赋值。
H:到此为止,对象初始化完毕。
I:把堆内存对象的首地址值赋值给栈内存的p变量。

08、 static 关键字的特点

一 被 static 关键字修饰成员的特点
A:随着类的加载而加载
B:优先于对象而存在
D:可以直接用类名.成员变量名所调用


二 什么情况下使用静态呢?
如果某个内容是被该类下所有对象所共享的,就应该用 static 修饰
如果这个属性是这个类下每个对象特有的描述时 不能使用静态.


09、 static 的注意事项
A:在静态方法中是没有this关键字的(因为this关键字是创建对象的时候才存在的,而静态的方法是随着类的加载而加载的)
B:静态的方法只能调用静态的成员变量以及成员方法
C:静态修饰的成员变量以及成员方法可以使用类名调用(也可以使用对象调用,推荐使用类名调用)


10、不同java文件中类的方法的调用

A:类 ArraysDemo 工具类  B:类  ArrayTest 测试类
第一种:先编译A类然后在编译B类在使用
第二种:直接编译B类它自动编译A类 直接使用即可

11、Math类功能的使用

A:Math.abs(参数类型 形式参数)
绝对值
B:Math.ceil(-18.8); //18.0
向上取整
C:Math.floor(12.3);//12.0
向下取整
D:Math.round(12.6);//13.00
四舍五入
E:Math.random();
获取随机数
F:Math.max(12,53);
获取两个数中的最大值
G:Math.min(11,66);
获取两个数中的最小值

标题基于Python的自主学习系统后端设计与实现AI更换标题第1章引言介绍自主学习系统的研究背景、意义、现状以及本文的研究方法和创新点。1.1研究背景与意义阐述自主学习系统在教育技术领域的重要性和应用价值。1.2国内外研究现状分析国内外在自主学习系统后端技术方面的研究进展。1.3研究方法与创新点概述本文采用Python技术栈的设计方法和系统创新点。第2章相关理论与技术总结自主学习系统后端开发的相关理论和技术基础。2.1自主学习系统理论阐述自主学习系统的定义、特征和理论基础。2.2Python后端技术栈介绍DjangoFlask等Python后端框架及其适用场景。2.3数据库技术讨论关系型和非关系型数据库在系统中的应用方案。第3章系统设计与实现详细介绍自主学习系统后端的设计方案和实现过程。3.1系统架构设计提出基于微服务的系统架构设计方案。3.2核心模块设计详细说明用户管理、学习资源管理、进度跟踪等核心模块设计。3.3关键技术实现阐述个性化推荐算法、学习行为分析等关键技术的实现。第4章系统测试与评估对系统进行功能测试和性能评估。4.1测试环境与方法介绍测试环境配置和采用的测试方法。4.2功能测试结果展示各功能模块的测试结果和问题修复情况。4.3性能评估分析分析系统在高并发等场景下的性能表现。第5章结论与展望总结研究成果并提出未来改进方向。5.1研究结论概括系统设计的主要成果和技术创新。5.2未来展望指出系统局限性并提出后续优化方向。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值