面向对象基础了解

万物皆对象,客观存在的事物都是对象

类的实例化
使用关键字new
静态方法可以通过类名点方法名的方式调用
但是不能通过类名点方法名的方式调用非静态方法
可以通过类的实例化对象名点方法名的方式调用
也可以通过类的实例化对像名方法名的方式调用非静态方法
成员变量
写在方法里的变量称之为局部变量
局部变量必须有初始值
没有赋值的成员变量有该数据类型的初始值
成员变量与局部变量的区别
1.作用域不同
    局部变量的作用域仅限于定义它的方法
    成员变量的作用域在整个类内部都是可见的
2.初始值不同
    成员变量有默认的初始值
    局部变量没有默认的初始值,必须自行设定初始值
3.同名变量不同
    在同一个方法中,不允许有同名的局部变量
    在同一个方法中,可以有同名的局部变量
4.存储位置不同
    成员变量是在对象创建以后存在于堆中,对象回校时,成员变量消失
    局部变量是在方法被使用时存在于栈中,方法调执行结束,从栈中清除
5.生命周期不同
    对象的创建而创建,对回校时,成员变量消失
    随着方法的调用被创建,方法调执行结束,从栈中清除
基本数据类型
    引用对象
    匿名赋值
引用变量 引用了一个内存地址
匿名对象 没有引用类型变量指向的对象
优点:使用之后直接从内存中消失 不会长期占用内存 适用于偶尔使用的场景
缺点:因为使用之后直接从内存中消失如果频繁使用该对象需要频繁在内存中创建和回收该对象创建和回收过程都要消耗系统资源~建议频繁使用对象尽量使用引用类型变量引用

访问控制修饰符
Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。

default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。

private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)

public : 对所有类可见。使用对象:类、接口、变量、方法

protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。

this本意方法的调用者
this在此处的含义是调用本类中的成员变量


封装
在面向对象程式设计方法中,封装((英语: Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
要访问该类的代码和数据,必须通过严格的接口控制。
封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。
封装的优点
1.良好的封装能够减少耦合。
2.类内部的结构可以自由修改。
3.可以对成员变量进行更精确的控制。
4.隐藏信息,实现细节。


无参构造
方法名与类名相同方法体没有返回值但是在方法声明的时候却不需要使用void修饰的方法我们称之为构造方法5*构造方法的作用用于初始化对象﹑对象的属性赋值
没有参数的构造方法我们称之为无参构造方法
代码中没有编写过构造方法 jvm在执行对象初始化的帮助程序追加无参构造方法
注意当一个类中既没有无参构造方法也没有有参构造方法的时候jvm会追加一个无参构造方法
但是当一个类中存在有参构造方法没有编写无参构造方法的时候jxm不会追加无参构造方法
所以不论在任何情况下一定要自己手写有一个无参构造方法

构造代码块
包裹起来的代码称为代码块或代码段
只有一对花括号包裹起来的代码我们称之为构造代码块
构造代码块与构造方法一样都是在类被实例化的过程中被调用的
并且构造代码块在构造方法之前先执行
类每次被实例化的过程中都会调用构造代码块

使用static修饰的构造代码块我们称为静态代码块
当类加载的时候执行静态代码块 而且静态代码块 仅执行一次  不可多次执行
而构造代码块实在类实例化的过程中执行的
执行优先级|静态代码块--->构造代码块--->构造方法

包装类
jdk1.5 提出自动拆装箱
包装类--->基本数据类型    拆箱
基本数据类型--->包装类对象    装箱
//Byte byte
/ / Short short
/ /Integer int
/ / Long long
/ /Double double
// Float float 
// Character char
// Boolean boolean

继承
父类的子类
当父类的方法满足不了子类的需求的时候,子类可以重写父类的方法,这种表现形式称为方法的重写
方法重载与方法重写的区别
在同一个类中,参数列志不同的同名方法我们称之为方法重载
父类的方法满足不了子类需求,子类重写父类的方法我们称之为方法重写
方法重载在同一个类中而方法重写必须存在子父类维承关系
使用abstract修饰没有方法体的方法,称为抽象方法
具备抽象方法的类必须是抽象类
使用abstract修饰的类,称为抽象类
抽象类不一定必须有抽象方法
子类继承抽象类 第一种方法是重写抽象类中的抽象方法
子类继承抽象类 第二种方法是子类也是一个抽象类
使用final修饰的类不能被继承

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值