import语句,声明在包的声明和类的声明之间。 如果需要导入多个类或接口,那么就并列显式多个import语句即可 如果使用a.*导入结构,表示可以导入a包下的所有的结构。举例:可以使用 java.util.*的方式,一次性导入util 包下所有的类或接口。 如果导入的类或接口是java.lang包下的,或者是当前包下的,则可以省略此import 语句。 如果已经导入java.a包下的类,那么如果需要使用a包的子包下的类的话,仍然需要 导入 如果在代码中使用不同包下的同名的类,那么就需要使用类的全类名的方式指明调用 的是哪个类。 (了解)import static组合的使用:调用指定类或接口下的静态的属性或方法 面向对象特征之一:封装性 1. 为什么需要封装性? 理论上: -`高内聚`:类的内部数据操作细节自己完成,不允许外部干涉; -`低耦合`:仅暴露少量的方法给外部使用,尽量方便外部调用。 通俗的说:把该隐藏的隐藏起来,该暴露的暴露出来。这就是封装性的设计思想。 2. 如何实现数据封装? 2.1 权限修饰符 Java规定了4种权限修饰,分别是:private、缺省、protected、public 2.2 作用 我们可以使用4种权限修饰来修饰类及类的内部成员。当这些成员被调用时,体现可见性的大小。 2.3 实际案例: 在题目中,我们给Animal的对象的legs属性赋值。在实际的常识中,我们知道legs不能赋值为负数的。但是如果 直接调用属性legs,是不能加入判断逻辑的。那怎么办呢? > 将legs属性私有化(private),禁止在Animal类的外部直接调用此属性 > 提供给legs属性赋值的setLegs()方法,在此方法中加入legs赋值的判断逻辑if(legs >= 0 && legs % 2 ==0) 将此方法暴露出去,使得在Animal类的外部调用此方法,对legs属性赋值。 > 提供给legs属性获取的getLegs()方法,此方法对外暴露。使得在Animal类的外部还可以调用此属性的值。 2.4 4种权限具体使用> 类:只能使用public、缺省修饰 > 类的内部成员:可以使用4种权限修饰进行修饰。 2.5 开发中4种权限使用频率的情况: 比较高:public、private 比较低:缺省、protected 3. 封装性的体现 > 场景1:私有化(private)类的属性,提供公共(public)的get和set方法,对此属性进行获取或修改 > 场景2:将类中不需要对外暴露的方法,设置为private. > 场景3:单例模式中构造器private的了,避免在类的外部创建实例。(放到static关键字后讲)
类的成员之三:构造器(constructor),构造方法 1. 构造器的理解 constructor :n. 建设者、建造者 construct:v. 建设、建造、创造 construction: n. 建设、建造 CCB 2. 构造器的作用 作用1:搭配new关键字,创建类的对象 作用2:在创建对象的同时,可以给对象的相关属性赋值 3. 构造器的使用说明 > 构造器声明的格式:权限修饰符 类名(形参列表){} > 创建类以后,在没有显示提供任何构造器的情况下,系统会默认提供一个空参的构造器,且构造器的权限 与类声明的权限相同。 > 一旦类中显示声明了构造器,则系统不再提供默认的空参的构造器。 > 一个类中可以声明多个构造器,彼此之间构成重载。
一、类中属性(当前仅考虑实例变量)赋值过程: 1. 在类的属性中,可以有哪些位置给属性赋值? ① 默认初始化; ② 显式初始化;(在类中直接给变量赋值int i = 1;) ③ 构造器中初始化; ********************************** ④ 通过"对象.方法"的方式赋值; ⑤ 通过"对象.属性"的方式赋值; 2. 这些位置执行的先后顺序是怎样? ① - ② - ③ - ④/⑤ 3. 以上操作在对象创建过程中可以执行的次数如何? > 只能执行一次:①、②、③ > 可以多次执行:④、⑤ 二、JavaBean的理解 所谓JavaBean,是指符合如下标准的Java类: - 类是公共的 - 有一个无参的公共的构造器 - 有属性,且有对应的get、set方法 三、读懂UML类图