Java面向对象——封装和继承

Java面向对象——封装和继承

面向对象的三大特性:

  • 封装
  • 继承
  • 多态

1掌握封装的使用

1.1封装的作用

封装: 类和对象章节 当时学到的是半成品的封装。学会发现类,发现类的属性、累的行为

另外一般的封装概念: 将一些不安全的信息进行封装(保护),然后将可以直接被我们使用的部分开放出来(提升安全性和可用性,有面向接口编程的思想)

使用步骤: 未来这些类组件都应该采用封装来进行信息保护

  • 属性私有化(private)
  • 提供公共的 getter() 和 setter() 方法
  • 根据需求在set() 和 get() 方法中添加逻辑判断

1.2 一般JavaBean的规范

JavaBean: 其实就是指的我们那些对象类

  • 属性私有化

  • 提供公共的get() Set() 方法

  • 提供无参构造

  • 实现序列化接口(序列化其实就是我们的对象在流之间进行转换的一种概念)

1.3封装的优势

我们未来开发的系统应该非常接近于 高内聚、松耦合。

可能面试题 :你对封装的理解下面这些 在加上你的感受

  1. 便于使用者正确使用系统,防止错误修改属性 。简单来说就是比较安全
  2. 有助于系统之间的低耦合(松耦合),提高系统的独立性。保证系统某一个实现发生变化时,只要他的家口不变,就不会影响其他的系统
  3. 提高软件的可重(chong)用性。每个功能的实现都是一个相对独立的整体,可以再多种情况下得到重(chong)用。
  4. 降低了构建大型系统 项目的风险。即使整个系统没有成功,但是个别独立的子系统可以能依然有价值

Interget.valueof(属性) 将String类型修改为int类型

2.掌握包组织结构

2.1 包的作用

package:包 从第二章就开始创建了

他的作用就是用于对源代码进行分包管理,方便我们开发和阅读,另外也一定程度上解决了同一包下无法出现同名文件

规范:要求包名全部小写

  • 公司域名的倒序+ 应用程序名 +【可选】部门名称 +功能模块
  • 假设:
    • 腾讯:www.tencent.com ->com.tencent.xx
    • 开发的 Tim :com.tencent.tim.xxx
  • Android 应用将包作为了一种区分不同应用程序的一个要素,另外还依靠与签名

2.2导包

在我们使用类的时候(一个类使用另一个类)

  1. 如果实在同一个包中使用某个类,那么可以直接进行使用
  2. 如果是在不同的包中使用某个类,必须先进行导包(import)
  3. 如果使用的是java.lang包下的内容的话,需要导包例如:System、 Math…(这是JVM自动导入的)
例如:
import java.util.Scanner; // 导包 因为不在一个包中 JVM也不知道去哪里找到这个类 
public class Test(){
	Scanner input =new Scanner();
}

包声明语法(必须出现在文件中的第一行有效代码)package 包地址

导包的语法:必须出现在类声明上方 包声明下方 import 类的全限定名; 例如java.util.Scanner ;

如果需要用到java.util包中的很多内容:那么可以直接 import java.util.*

3.掌握Java中的访问权限修饰符

访问修饰符:在累的语法和方法的语法上(访问级别由小到大)

访问修饰符不仅可以修饰属性还可以修饰类 、修饰方法

  • pricate : 被这个修饰的属性或方法 表示只能在当前类使用
  • [package/default] :当你不写访问修饰符是 代表的就是包级别的访问
  • protected
  • public

在这里插入图片描述

在一个类文件中,被public修饰的类的名称必须和文件名相同

一般情况下不会再一个类文件中定义多个类

4.掌握static关键字[有难度]

static :如果被它修饰的方法,在调用非static修饰的方法时,必须先创建对象才能使用

static 表示静态的 ,被它修饰的信息要和JVM运行时数据区中的方法区打交道。

它可以修饰:

  • 属性: 类属性/类变量/静态变量 可以通过类名直接调用
  • 方法: 类方法/静态方法 可以通过类名直接调用
  • 代码块: 静态代码块 创建对象时 先加载代码块 在加载构造方法
    • 我了在某种时机下自行的一段代码
    • 静态代码块只执行一次 ,在类加载是执行
    • 构造代码块会随着对象穿件而执行,优先于构造方法
public class Test(){
    public static void main(String[] args){
        Test test = new Test();
        test.meth();
    }
    public void meth(){
        
    }
}

注意事项:

  • static修饰的信息都是属于类的信息 它们户会随着类的加载而进行初始化

    public static void method1(){
        // method2(); //错误  因为当 1 加载时 2还未初始化所以我们才会先创建对象在去使用
    }
    public void  method2(){
        1(); // 1 已经在类加载 的时候 加载完了 所以可以正常使用
    }
    
  • static修饰信息是可以被类的所有对象共享的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值