Java面向對象程式設計四大特征
抽象性:抽出事物的本質特性,把某類事物的共同的特點描述出來;
封裝性:把對象的屬性和操作結合在一起,構成一個獨立的封裝體
繼承性:使得一個類可以繼承另一個類的屬性和方法
多态性:指不同類型的對象接收相同的消息時産生不同的行為
一、抽象
我們去定義一個類的時候,就是把一類事物的共有的屬性和行為提取出來,形成一個實體模型,這種研究問題的方法稱為抽象。
二、封裝
封裝就是把抽象出的資料和對資料的操作封裝在一起,資料被保護在内部,程式的其他部分隻有通過被授權的操作(成員方法),才能對資料進行操作。
代碼示例:
package com.xx.day8;
/**
* @author 程式員小新兒
*2020年4月6日
*/
//公司職員
class Clerk{
public String name;
//private 私有的
private int age;
private float salary;
//構造函數
public Clerk(String name,int age,float salary) {
this.name = name;
this.age = age;
this.salary = salary;
}
//通過一個成員方法去控制和通路私有的屬性
/**
* @return the salary
*/
public float getSalary() {
return salary;
}
}
public class EncapsulationTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//建立一個職員
Clerk clerk = new Clerk("小新" , 21 , 1234.5f);
System.out.println("職員名字是" + clerk.name + ",薪水是" + clerk.getSalary());
}
}
三、繼承
繼承可以解決代碼複用,當多個類存在相同的屬性(變量)和方法時,可以從這些類中抽象出父類,在父類中定義這些相同的屬性和方法,所有的子類不需要重新定義這些屬性和方法,隻需要extends語句來聲明繼承父類:class 子類 extends 父類 這樣子類就會擁有父類定義的屬性和方法。(java是單繼承而c++可以多繼承)
代碼示例:
//國小生類
class Pupil{
//定義成員屬性
private String name;
private int age;
private float fee;
//繳費 不打折
public void pay(float fee) {
this.fee = fee;
}
}
//中學生類
class MiddleStudent{
//定義成員屬性
private String name;
private int age;
private float fee;
//繳費 打八折
public void pay(float fee) {
this.fee = fee * 0.8f;
}
}
//大學生類
class CollegeStudent{
//定義成員屬性
private String name;
private int age;
private float fee;
//繳費 打一折
public void pay(float fee) {
this.fee = fee * 0.1f;
}
}
代碼改造:
//将學生的共有屬性提取出來做一個父類
class Student{
//定義成員屬性
public String name;
public int age;
public float fee;
}
//國小生類
class Pupil extends Student{
//繳費
public void pay(float fee) {
this.fee = fee;
}
}
//中學生類
class MiddleStudent extends Student{
//繳費 打八折
public void pay(float fee) {
this.fee = fee * 0.8f;
}
}
//大學生類
class CollegeStudent extends Student{
//繳費 打一折
public void pay(float fee) {
this.fee = fee * 0.1f;
}
}
程式設計中,如果你不希望子類繼承某個屬性或者方法則将其聲明為private。
點我進入公衆号看原創連結
微信掃描下方二維碼或微信公衆号搜尋【程式員小新兒】歡迎關注哦~
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2YfNWawNCM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TP310MjpmTzcGVOBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZwpmLzUTM1QDMwMTM3ADNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)