本节主要知识点:
Java面向对象的三大特征:封装、继承、多态
一、封装
1、访问修饰符:说明了类以及属性和方法的可访问性。
(1)默认的:
用默认修饰符修饰的类、属性以及方法只能被同一个包中的其它类访问
(2)公有的:public
用public修饰的类、属性以及方法能被任何包中的任何类访问
注意:一般情况下,在Java中,类被修饰为public,类中的方法一般也是用public修饰,属性一般采用private修饰。
(3)私有的:private
用private修饰的属性和方法,该属性和方法只能在当前类中被访问,除此之外都无法访问这些属性和方法。
特别的,private在Java中是无法修饰类的。
(4)受保护的:protected
protected访问修饰符只用于父子继承之间。
封装实例,get方法与set方法:
public class User {
private int id;
private String username;
private String password;
private double money;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
2、包(package):采用IDE(集成开发环境)写代码,根据功能的不同,那么不同的JAVA文件会被放置到不同的文件夹中,而在IDE中这个文件夹的概念就被称之为包。
注意:类一般采用public修饰,同一包中的类可以直接相互调用,而同一个项目下不同包的类想要相互调用,必须通过import引入。
3、封装的目的:为了让被private修饰的属性在当前类以外被访问。
4、封装的方法:get方法和set方法。在Java中,私有的属性加上get方法和set方法就共同构成了Java中的封装。
二、继承
1、继承的原因:很多实体类中拥有相同的属性以及封装的方法,大量重复的代码很容易造成代码冗余。
2、继承的方法:利用关键字extends,把这些类中拥有的相同的属性和方法提取出来,创建一个公有类,这些类直接使用公有类中的属性和方法。一旦确定子类继承某个父类,那么该子类就可以使用父类非私有的属性和方法。
3、继承具有单根性,一个子类只能继承一个父类。
三、多态
1、在Java中,多态是伴随着继承而来的。
2、重写:在父子关系中,父类中拥有的方法,子类也写了相同的方法。这个过程称为重写。
注意:只要子类中出现了和父类同名的、同返回值的、同参数的方法,就认为是子类重写了父类的方法。
3、抽象:在Java中,父类通过子类抽象出公有类,所以父类比子类更抽象。
(1)抽象类:在父子继承关系中,一般把父类声明为抽象的类。
(2)抽象方法:父类的方法更多可以是描述性方法,我们把这些方法声明为抽象方法。抽象方法是没有方法体的方法。
(3)抽象方法只能存在于抽象类,但是抽象类中除了可以有抽象方法外,也可以拥有普通方法。
(4)子类继承抽象父类,那么子类必须要实现该父类中的所有抽象方法。
(5)抽象类是无法自己实例化自己的类,抽象类的对象实例化的时候必须指向其子类。
4、构造方法与普通方法
(1)方法:是为了实现某个或某些功能而编写的代码段,这个代码段被封装在一个结构中。
(2)方法的基本结构:
方法的基本结构
访问修饰符 返回值类型 方法名(...)
{
功能代码段
}
注意:①方法的访问修饰符可以是默认的、public、private、protected;②方法的返回值类型主要分为有返回值(即非void)、无返回值类型(即void);
③方法的调用就是通过方法名;
④方法是可以带参数的,方法中带的参数被称之为形式参数,简称形参,那么对象在调用该方法的时候需要给这个方法传递实参。
(3)普通方法:
public void go()
{
无返回值无参数的方法
}
public void go(int id,String name)
{
无返回值但有参数的方法
}
public int go()
{
//有返回值但无参数的方法
return 0;
}
public int go(int id,String name)
{
//有返回值且有参数的方法
return 0;
}
(4)构造方法:只存在于当前类中的方法,它无任何返回值,与类同名。
public class User
{
public User()
{
}
}
(5)构造方法是一种没有任何返回值类型的方法,无参的构造方法是伴随着类的生成而生成的,而且构造方法就是类的对象用于实例化的方法,简单来说,我们平时总是说new对象,其实new对象后面用的就是构造方法。
(6)无参构造方法确实是伴随着类的生成而默认存在的,但是一旦手动添加了带参的构造方法,无参的构造方法就被覆盖了,不会再默认提供了,如果想要使用,必须手动添加回来。
Java面向对象相关知识: |