关于Java类和封装的讲解

面向对象
案例引入:五子棋
1、面向过程:将事务按照一定的步骤实现。通过函数的方式执行步骤。
1)、开始游戏
2)、执黑先行
3)、绘制棋盘
3)、判定输赢
、、、、
游戏结束
(类似于蛋炒饭)
2、面向对象:把构成事务划分成一个个对象来处理。
1)、游戏用户
2)、棋盘对象
3)、规则对象
(类似于盖浇饭)
3、优缺点
1)、面向过程:效率高(如果使用面向对象的方式来开发,会创建对象,开销较大)、可维护性比较低 。
eg:单片机、嵌入式开发、Linux操作系统
2)面向对象:效率低、可维护性比较高(耦合度低)
eg:应用系统
二、面向对象
1、类
类是抽象的,是用来描述事物的。
2、对象
对象是具象的,是实际用来干活的,也是类的一个实例。对象占内存,类不占内存。
属性:静态的(固有特征)。
行为:动态的(方法)
3、类和对象之间的关系
类是对象的描述,对象是类的实例。
4、类的结构
1)、成员属性
2)、成员方法
3)、构造器(构造方法)
5、面向对象的特征
1)、封装:将事物的内部细节隐藏起来,对外暴露访问接口。
2)、继承:子类可以拥有父类的属性和行为。好处:提高代码的复用性。
3)、多态:同一个动作作用于不同的对象产生的不同行为。
多态的类型:编译时多态和运行时多态。
三、Java程序执行流程
1)、将编写好的Java源程序(.java)通过编译器生成字节码文件(.class)
2)、通过JVM类加载器加载所有的字节码文件。
3)、加载完字节码文件后交给JVM执行引擎执行Java程序。

四.Java的内存结构
1)、方法区
存储类的信息(访问修饰符 全类名(包名+类名) 注解)
静态的成员的属性(static修饰的成员属性)
常量(static final修饰的成员属性)
静态方法(static修饰的成员方法)
成员方法
2)、堆
new 出来的的对象
数组、接口
3)、栈
局部变量
对象的引用
五、类

语法访问修饰符 +class+类名+{}(大括号叫作用域)

类的组成:

  	属性(又叫成员属性或成员变量) 访问修饰符+数据类型+属性名称public String name
   	分类:
   		普通成员变量: 存储在堆中
   		类变量 :随着类的加载而加载(static int age)存储在方法区
  		常量:static final country = “CHINA”;常量用大写  存在方法区的常量池中
   方法  
   构造器

访问修饰符

public 公开的 在任何位置都可以访问
private	私有的 只有在当前类中可以访问
protected	受保护的 在同一个包中访问或者在派生类中访问
defaul	默认的  在同一个包中可以访问

成员方法

构造器

 通过构造器构造对象
 通过构造器可以初始化成员属性(给成员变量赋值)
 可以重载
 创建对象
 语法:new 构造器; 
 流程:当通过new 构造器之后,会在对空间开辟一段内存,来保存这个实例,产生一个引用地址,将来
 可以将引用地址交给在栈中声明的变量。

局部变量和成员变量

作用域不同
	成员变量在类中声明,
	局部变量是在方法内(方法体内或形参列表)
存储位置不同
	成员变量存储在堆中
	局部变量存储在栈中
赋值方式不同
	成员变量都有默认值
	局部变量没有默认值必须显示的赋值才能访问	

六、封装
封装
1.概念:将类内部细节隐藏起来,对外可以提供访问的接口。
2.如何实现封装?
1).将成员属性声明为私有
2).增加setXXX()和getXXX()方法(类似于文件的读写属性)
3. this关键字
–用来区分成员变量和局部变量
–代表当前对象
4.构造器
1).构建对象
2)·初始化成员属性
3).构造器可以形成重载
4).与类同名,无返回值
5).所有类都有构造器
6).当类中没有显示的构造器是,实际上有一个隐藏的构造器
7).当类中有显示构造器时,会把隐藏的构造器覆盖

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值