Java 3 day--代码块、Package、Import、封装

一、代码块

概念: 使用“{}”括起来的一段代码。
分类: 根据位置可分类。

普通代码块: 定义在方法中,使用{}括起来的叫做普通代码块。
构造代码块: 定义在在类中的用{}括起来的叫构造代码块。
注意:
构造代码块中的代码在构造方法前面执行。
构造代码块中的代码会添加到每一个构造方法中当使用this关键字则不会添加。

public class CodeBlockDemo {
    
    public CodeBlockDemo(){
        System.out.println("make method");
    }
    {
        System.out.println("make block");
    }
    
    public static void main(String[] args){
        CodeBlockDemo codeBlockDemo=new CodeBlockDemo();
    }
}

静态代码块: 使用static声明的代码块,在程序载入的时候优先执行。
同步代码块: 多线程的时候使用,用来给共享空间进行加锁操作。

二、Package

为什么需要package?
为了解决类之间的重名问题。
为了便于管理类。
package怎么用?
通常是类的第一句非注释性语句。
包名:域名倒着写即可,再加上模块名,并与内部管理类。
注意事项:
写项目时都要加包,不要使用默认包。
com.gao和com.gao.car,这两个包没有包含关系,两者相互独立。
完全限定名:包名+类名

JDK的主要包
java.lang
包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能。
java.awt
包含了构成抽象窗口工具集(abstract window toolkits)的多个类。这些类被用来构建和管理应用程序的图像用户界面(GUI)。
java.net
包含执行与网络相关的操作的类
java.io
包含能提供多种输入/输出功能的类。
java.util
包含一些使用工具类,如定义系统特性、使用与日期日历相关的函数。

三、Import

为什么需要import?
如果不适用import,我们如果用到其他包的类时,只能这么写:java.util.Data,代码量太大,不利于编写和维护。通过import可以导入其他包下面的类,从而可以在本类中直接通过类名来调用。
import怎么用?
import java.包名.类名; //导入具体的包
import java.util.*; //导入该包下所有的类
注意事项:
java会默认导入java.lang包下所有的类,因此这些类我们可以直接使用。
如果导入两个同名的类,只能用包名+类名来显示调用相关类。
java.util.Data = new java.util.Data();

静态导包 (import static)

当需要使用某个类的多个方法的时候,同时又不想频繁写该类的名称,此时可以使用静态导包。

JDK5.0后增加。

如何使用:
import static java.lang.Math.*; //导入Math类所有静态属性
import static java.lang.Math.PI; //导入Math类的PI属性
然后我们就可以在程序中直接使用:System.out.println(PI);

四、封装encapsulation

为什么要使用封装?
封装可以解决属性随意访问不合理赋值的问题。
什么是封装?
封装是面向对象三大特征之一。
封装:将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
封装的好处:
1.隐藏类的实现细节。
2.只能通过提供的方法进行访问,其他方法无法访问。
3.可以根据需求添加复杂的逻辑判断语句。
4.方便修改实现。

面向对象的封装(狭义):为保证数据安全和规范将类中的属性设置为私有属性,提供共有的外部方法供程序进行调用,可以实现丰富的细节操作。
广义的封装:可以将完成特定功能的代码块封装成一个方法,供不同的程序进行调用。

我们程序设计要追求“高内聚,低耦合”。
高内聚:类的内部数据操作细节自己完成,不允许外部干涉;
低耦合:仅暴露少量的方法给外部使用。

如何使用封装
封装步骤:
1.修改属性的可见性–>设为private。
2.创建共有的getter/setter方法–>用于属性的读写。
3.在getter/setter方法中加入属性控制语句–>对属性值的合法性进行判断。

使用访问控制符实现封装

成员(成员变量或成员方法)四种访问权限:
1.public 公共的:可以被项目中所有的类访问。
2.protected 受保护的:可以被这个类本身访问;同一个包中的所有其他的类访问;被它的子类(同一个包以及不同包中的子类)访问。
3.default/friendly 默认的/有好的(包可见性):被这个类本身访问;被同一个包中的类访问。
4.private 私有的:只能被这个类本身访问。
在这里插入图片描述

类的两种访问权限:
1.public公共的:可被同一项目中所有的类访问。(必须与文件名同名)
2.default/friendly 默认的/有好的:可被同一个包中的类访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值