类
1、什么是类?
类是对象的模子,具有相同属性和方法的一组对象的集合,类是不存在的,是用来描述对象信息。在计算机的世界里面,计算机关注的事数据信息,我们描述数据信息的时候一定要要描述数据类型,对象就是具体的数据信息,类是信息的数据类型
2、类的构成
类是由抽象出的属性和行为组成的对一种实物的描述,
实物的属性是类的成员变量,实物的行为是类的方法。
3、如何创建类
创建一个Test类
public class Test{
声明一个变量,name
String name;
声明一个方法,remidnd()
public void remidnd(){
Sysout.outprintln(name+“记得打卡”);
这就是一个创建类的过程
对象
1、什么是对象?
对象是真实存在的事物,可以说任何客观存在的都是可以成为对象,一台电脑,一直钢笔,一个人,一辆轿车等等,都是可以成为对象。
2、类和对象的概念
类的实质是一种数据类型,类似于int、char等基本类型,不同的是它是一种复杂的数据类型。因为它的本质是类型,而不是数据,所以不存在于内存中,不能被直接操作,只有被实例化为对象时,才会变得可操作。
现实世界中任何物体都能被当作是对象,不过在正常开发的时候通常只是在一定的范围去考虑和认识与系统相关的事物并用系统中对象抽象的表示他们
-
类: 是一组具有相同属性和行为的事物的集合,本质还是一种数据类型,类是抽象的
属性: 事物的静态的特征, (成员变量)
行为: 事物的动态的特征(方法,动作) -
人:
属性:身高 肤色 年龄
行为:吃饭 睡觉 学习对象:对象是真实存在的实体,对象是具体的,是类的具体体现(对象就是类的举例) xxx就是人的举例 xxx 属性:155 肤色 黄色 18 行为:吃饭 睡觉 学习
面向过程:C语言,以方法为中心,主要是方法之间的调用
面向对象:更符合人类的思维习惯,以对象为中心,主要是对象之间的调用
封装
封装:是面向对象的三大特征之一,
* 隐藏对象的属性和实现细: 将我们的成员变量私有化,修饰符为private
* 仅对外提供公共访问和修改方式: 给我们的成员变量提供公共访问方式,getXXX() setXXX()
set属性():用来设置属性值的方法
get属性():用来获取属性值的方法
补充:
既然封装是面向对象的三大特征之一,那么我们在使用的时候,就应该遵循一些规则(我们以后在写成员变量的时候,都要私有化,提供公共访问方式)
封装使用的步骤:
1 成员变量私有化 private
2 提供公共访问方式 getXXX() setXXX()
1、封装的概念
在面向对象程序设计方法中,封装是指一种将抽象性函数式接口的实现细节部份包装、隐藏起来的方法。
封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
要访问该类的代码和数据,必须通过严格的接口控制。
2、封装的作用
封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。
适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。
封装的优点
1、减少耦合 2、可重复性 3、精确控制 4、安全性
修饰符
1、访问控制符
Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。例如:默认访问修饰符、私有访问修饰符-private、公有访问修饰符-public、受保护的访问修饰符-protected
2、非访问修饰符
为了实现一些其他的功能,Java 也提供了许多非访问修饰符。例如:static 修饰符、final 修饰符、abstract 修饰符、synchronized 和 volatile 修饰符
常用的非访问修饰符
static 修饰符,用来修饰类方法和类变量
final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的
abstract 修饰符,用来创建抽象类和抽象方法
synchronized 修饰符,主要用于线程的编程,synchronized 关键字声明的方法同一时间只能被一个线程访问。synchronized 修饰符可以应用于四个访问修饰符
volatile 修饰符,volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。
访问修饰符
default 默认的,只能在本包中访问 (同一个文件夹中)
private : 私有的,只能在本类中访问
public : 公共的,都可以访问
protected : 受保护的,只能在本包中访问,子类可以访问)
包: 本质就是一个文件夹,用来管理我们的类的,我们的类都要放在包中。我们某些相同功能的类,可以放在同一个包中
* 包名: 一般都是我们公司的域名倒着写 www.alibaba.com com.alibaba www.xinzhi.com com.xinzhi