一、包
1、包的定义
在Java中简单的把包看成是文件夹
2、包的作用
将Java源文件和class字节码文件分包进行管理,方便我们对程序的维护和管理。
3、声明包的语法
package 公司域名反写.项目名.模块名.子模块名;
注意:声明包的时候,应该全部都是英文,且所有字母应该全部小写,除此之外,声明包的语句必须放在整篇代码的第一行(注释不算)。
二、导包
1、Java中常见的包
Java.lang java的核心包,java的核心包(在java.lang包下面的直接类都不需要手动 导入包,它底层会自动导入的) 如:String 、 System,如果是java.lang的 子孙包下面的类或者接口,都是需要手动导入包的
Java.util Java工具包
Java.awt 图形化界面包
Java.net 网络编程包
java.io 输入输出流包
2、导包的两种方式
①直接import+包
例如:import java.util.Arrays;
Arrays.sort();
如果导入的两个包的类名相同,那么就只能导入一个,另一个全部手写
例如:java.util.Date date;
java.sql.Date date2;
这里就只能导入一个
import java.util.Date;
Date date;
java.sql.Date date2;
②*导包(*指的是类,不是包):java.util.*; 在当前文件中导入的类是当前使用到的类,并不是导入util包下面所有的类
三、封装
1、封装的作用
封装的作用在于安全,防止暴力访问我们应用程序,应该以正确的方式去访问我们的应用程序
2、Java中面向对象里封装的实现
1、字段私有化;
2、给每个字段提供一组setter、getter方法进行对字段的取值和赋值
3、给字段赋值得得三种方法
1、对象名.字段名 真实开发时不适用,因为我们的字段一般要私有化,他 不能访问私有成员
2、构造方法 在字段初始化的时候给字段赋值。
3、setter、getter方法 最常用,既可以给私有字段赋值,也可以取值
4、有了构造方法是不是就不用setter、getter方法了?
答:不是,因为构造方法是在字段初始化的时候给它赋值,而setter、getter方法可以在后续中随时给字段赋值、取值。
四、javabean(标准的Java类,后续的书写都按照这个)
1、类必须被public所修饰;
2、字段必须私有化,且为每个字段提供一组setter、getter方法进行赋值和取值;
3、必须有一个无参数的构造方法。
五、this
1、this指的是当前对象
如何判断当前对象是谁?可以通过谁在调用this所在的方法,this就代表谁来判断。
2、this的作用
①消除局部变量和成员变量之间的二义性
②调用构造方法 仅仅是调用,不会创建对象。注意:this(...)调用构造方 法必须位于构造器的第一行
语法格式:this(..) 括号中可为任意个数的参数
实例:如上图。
3、目前调用构造方法的方式
1、New Xxxx();调用构造方法
2、this(...); 仅仅只是调用构造方法,不会创建对象。注意:this调用构造方法 必须位于构造器的第一行
4、this作为参数进行传递
This既然表示当前一个对象,一个对象就是一个数据,因此,对象可以作为值进行传递。
5、this可以作为值进行返回
This既然表示当前一个对象,一个对象就是一个数据,因此,对象可以作为值进行返回。
六、继承(extends)
把子类公共的代码进行向上抽取,子类中只写特定的代码即可
1、继承的优势
少写代码,提高代码的复用性。
2、继承的语法格式
语法格式:class A{}
class B extends A{}
3、继承的特点
类与类之间只能是单继承
4、子类可以继承父类那些东西?
1、非私有化的字段、方法(访问层面);
2、不能继承构造方法
继承的理解:
①继承是可以继承父类所有的方法和属性的(构造方法除外),只是继承到的私有方法、私有属性不能访问(但是可以通过公共的方法进行访问)--这是继承层面;
②因此我们就从能被访问稳层面理解,继承只能继承非私有化的成员。
实例化:生成实例的过程
子类实例化时父类会先实例化一个父类对象,然后在父类对象的基础上加上子类对象独有的成员就成了子类的对象,因此说父类有的子类都有,只是父类私有的子类不能直接访问而已。
5、类必然直接或间接继承于object类,因为object类是所有类的老祖宗
6、专业术语
父类:基类、超类、根类
子类:派生类、扩展类