面向对象的相关知识
java项目的层次结构大概分为项目->包->类,类是java项目中的最基本单位
类
类的构成
类由属性和方法构成,直接在类结构中定义的属性和方法被称为成员变量和成员方法
成员变量
又称全局变量,在标准的类中,出于安全性考虑,一般会把private作为成员变量的修饰符,外界只能通过setter和getter方法去修改获取该变量。
局部变量必须要先声明初始值才能被使用,而全局变量即使赋初值,所有类型也都会有一个初始值,如下:
变量类型 | 初始值 |
---|---|
byte、int、short、long | 0 |
float、double | 0.0 |
boolean | false |
引用类型 | null |
成员方法
方法分为:无参无返回、有参无返回、无参有返回、有参有返回
一般来说类的成员方法大概由构造方法、getter/setter方法和其他功能方法构成,修饰符通常是public
构造方法
如果创建了一个类的引用类型对象,那么创建该对象时必定会调用该类的构造方法。
构造方法作为一个特殊的方法,它没有返回值,且方法名必须和类名保持一致(区分大小写)
所有类都有一个默认的无参构造方法,但如果你自定义了一个构造方法,那么原来默认构造方法将会被覆盖无法调用,除非再手动生成一个无参构造方法。
构造函数可以帮助我们在创建对象时对变量进行初始化
主方法
所有java程序的运行都是从主方法开始的;
包package
一个包中包含了很多类,包的命名方式一般是采用域名倒置+项目名+模块名的方式
域名例如:baidu.com
域名倒置:com.baidu
访问修饰符
分为private、default、protected、public,它们修饰的元素,使用范围依次增大
- private:常用于修饰全局变量,只能被当前类访问
- default(不添加修饰符即为default):只能被当前类所在包中的类访问
- protected:被当前类所在包中的类、当前类的 子类访问
- public:被当前项目中的所有类访问
import
当使用其他包中的类时,需要用import导入该类所在包(导包),当需要导入名字相同但属于不同包的类时,其中一个类用import导包,另一个类则需要使用完全限定名创建对象。
import com.softeem.lesson07.exp.User;
main(){
//使用exp中的User类
User user = new User("softeem", "123");
//使用entity中的User类
com.softeem.lesson07.entity.User user2 = new com.softeem.lesson07.entity.User();
}
继承extends
-
一个子类只能继承一个父类,但能多继承(子类继承->父类继承->祖父类继承->…)
-
子类无法继承父类的构造方法,但声明子类时会先调用父类的构造方法(所以如果父类构造方法是有参方法,则子类声明时也要在super()中传递相同类型参数)
-
子类声明构造方法时,参数列表可以与父类不同
-
super代表当前类的父类,super()表示父类构造方法,可以通过super.xxx调用父类非私有元素