一篇文章帶你入門java面向?qū)ο?/h1>
更新時(shí)間:2021年08月04日 17:30:28 作者:wwwzhouzy
這篇文章主要介紹了Java語言面向?qū)ο缶幊趟枷胫惻c對(duì)象實(shí)例詳解,還是十分不錯(cuò)的,這里給大家分享下,需要的朋友可以參考,希望能幫到你
一、繼承
繼承就是子類繼承父類的特征和行為,使得子類對(duì)象(實(shí)例)具有父類的實(shí)例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為
本章就以人、學(xué)生、老師作為例子。學(xué)生和老師都繼承人這個(gè)對(duì)象,都有人的特征和行為,人就是父類,老師和學(xué)生就是子類
示例:
人類:
package com.zhouzy.base.t7;
public class Person {
private String name;
private String sex;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void action(Person p){
System.out.println("這是人的行為");
System.out.println("person的名字:"+p.getName());
}
}
學(xué)生:
package com.zhouzy.base.t7;
public class Student extends Person{
/**
* 這就是重寫
*/
@Override
public void action(Person p){
System.out.println("這是學(xué)生的行為");
System.out.println("Student的名字:"+p.getName()); //繼承了父類的屬性
}
}
老師:
package com.zhouzy.base.t7;
public class Teacher extends Person{
@Override
public void action(Person p){
System.out.println("這是老師的行為");
System.out.println("Teacher的名字:"+p.getName());
}
}
測試:
package com.zhouzy.base.t7;
import org.junit.Test;
public class ObjectTest {
@Test
public void extendsTest(){
Person p1 = new Student();
p1.setName("張三");
p1.action(p1);
Person p2 = new Teacher();
p2.setName("劉老師");
p2.action(p2);
}
}
結(jié)果:
這是學(xué)生的行為
Student的名字:張三
這是老師的行為
Teacher的名字:劉老師
二、重載
重載是在一個(gè)類里面方法名相同,但返回值或者參數(shù)類型或個(gè)數(shù)不同,比如
private String testOverload(){
return "Overload";
}
private String testOverload(String param){
return "Overload";
}
private void testOverload(int param){
System.out.println(param);
}
private String testOverload(String param1,String param2){
return "Overload";
}
重寫和重載是java多態(tài)的一種體現(xiàn)
三、接口
接口(英文:Interface),在JAVA編程語言中是一個(gè)抽象類型,是抽象方法的集合,接口通常以interface來聲明。一個(gè)類通過繼承接口的方式,從而來繼承接口的抽象方法。
接口并不是類,編寫接口的方式和類很相似,但是它們屬于不同的概念。類描述對(duì)象的屬性和方法。接口則包含類要實(shí)現(xiàn)的方法。
除非實(shí)現(xiàn)接口的類是抽象類,否則該類要定義接口中的所有方法。
接口無法被實(shí)例化,但是可以被實(shí)現(xiàn)。一個(gè)實(shí)現(xiàn)接口的類,必須實(shí)現(xiàn)接口內(nèi)所描述的所有方法,否則就必須聲明為抽象類。另外,在 Java 中,接口類型可用來聲明一個(gè)變量,他們可以成為一個(gè)空指針,或是被綁定在一個(gè)以此接口實(shí)現(xiàn)的對(duì)象。
1、接口與類相似點(diǎn):
一個(gè)接口可以有多個(gè)方法。
接口文件保存在 .java 結(jié)尾的文件中,文件名使用接口名。
接口的字節(jié)碼文件保存在 .class 結(jié)尾的文件中。
接口相應(yīng)的字節(jié)碼文件必須在與包名稱相匹配的目錄結(jié)構(gòu)中。
2、接口與類的區(qū)別:
接口不能用于實(shí)例化對(duì)象。
接口沒有構(gòu)造方法。
接口中所有的方法必須是抽象方法,Java 8 之后 接口中可以使用 default 關(guān)鍵字修飾的非抽象方法。
接口不能包含成員變量,除了 static 和 final 變量。
接口不是被類繼承了,而是要被類實(shí)現(xiàn)。
接口支持多繼承。
3、語法
[可見度] interface 接口名稱 [extends 其他的接口名] {
// 聲明變量
// 抽象方法
}
示例:
package com.zhouzy.base.t2;
public interface Car {
public void move();
}
實(shí)現(xiàn)接口的類,必須實(shí)現(xiàn)接口里面的方法
package com.zhouzy.base.t2;
public class Baoma implements Car{
@Override
public void move() {
System.out.println("我是寶馬,時(shí)速最高200公里每小時(shí),牛擦吧!");
}
}
四、枚舉
1、定義
Java 枚舉是一個(gè)特殊的類,一般表示一組常量,比如一年的 4 個(gè)季節(jié),一個(gè)年的 12 個(gè)月份,一個(gè)星期的 7 天,方向有東南西北等。
Java 枚舉類使用 enum 關(guān)鍵字來定義,各個(gè)常量使用逗號(hào) , 來分割。
例如定義一個(gè)顏色的枚舉類。
enum Color
{
RED, GREEN, BLUE;
}
示例:
enum Color
{
RED, GREEN, BLUE;
}
public class Test
{
// 執(zhí)行輸出結(jié)果
public static void main(String[] args)
{
Color c1 = Color.RED;
System.out.println(c1);
}
}
結(jié)果:
RED
2、迭代枚舉元素
enum Color
{
RED, GREEN, BLUE;
}
public class MyClass {
public static void main(String[] args) {
for (Color myVar : Color.values()) {
System.out.println(myVar);
}
}
}
結(jié)果:
RED
GREEN
BLUE
3、在 switch 中使用枚舉類
enum Color
{
RED, GREEN, BLUE;
}
public class MyClass {
public static void main(String[] args) {
Color myVar = Color.BLUE;
switch(myVar) {
case RED:
System.out.println("紅色");
break;
case GREEN:
System.out.println("綠色");
break;
case BLUE:
System.out.println("藍(lán)色");
break;
}
}
}
結(jié)果:
藍(lán)色
總結(jié)
本篇文章就到這里了嗎,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
-
Java多線程之定時(shí)器Timer的實(shí)現(xiàn)
定時(shí)/計(jì)劃功能在Java應(yīng)用的各個(gè)領(lǐng)域都使用得非常多,比方說Web層面。本文主要為大家介紹了Java多線程中定時(shí)器Timer的實(shí)現(xiàn),感興趣的小伙伴可以了解一下 2022-10-10
-
Java中Optional的正確用法與爭議點(diǎn)詳解
這篇文章主要介紹了Java中Optional的正確用法與爭議點(diǎn)的相關(guān)資料,需要的朋友可以參考下 2022-11-11
-
Javamelody監(jiān)控不到sql的問題(親測有效)??
JavaMelody是用來在QA和實(shí)際運(yùn)行生產(chǎn)環(huán)境中監(jiān)控Java或Java?EE應(yīng)用程序服務(wù)器的一個(gè)開源框架,這篇文章主要介紹了Javamelody監(jiān)控不到sql(親測有效)??,需要的朋友可以參考下 2022-10-10
-
Java substring方法實(shí)現(xiàn)原理解析
這篇文章主要介紹了Java substring方法實(shí)現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下 2020-05-05
-
SpringMVC中的@RequestMapping注解解析
這篇文章主要介紹了SpringMVC中的@RequestMapping注解解析,SpringMVC使用@RequestMapping注解為控制器指定可以處理哪些?URL?請(qǐng)求,在控制器的類定義及方法定義處都可標(biāo)注@RequestMapping,需要的朋友可以參考下 2023-12-12
最新評(píng)論
一、繼承
繼承就是子類繼承父類的特征和行為,使得子類對(duì)象(實(shí)例)具有父類的實(shí)例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為
本章就以人、學(xué)生、老師作為例子。學(xué)生和老師都繼承人這個(gè)對(duì)象,都有人的特征和行為,人就是父類,老師和學(xué)生就是子類
示例:
人類:
package com.zhouzy.base.t7;
public class Person {
private String name;
private String sex;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void action(Person p){
System.out.println("這是人的行為");
System.out.println("person的名字:"+p.getName());
}
}
學(xué)生:
package com.zhouzy.base.t7;
public class Student extends Person{
/**
* 這就是重寫
*/
@Override
public void action(Person p){
System.out.println("這是學(xué)生的行為");
System.out.println("Student的名字:"+p.getName()); //繼承了父類的屬性
}
}
老師:
package com.zhouzy.base.t7;
public class Teacher extends Person{
@Override
public void action(Person p){
System.out.println("這是老師的行為");
System.out.println("Teacher的名字:"+p.getName());
}
}
測試:
package com.zhouzy.base.t7;
import org.junit.Test;
public class ObjectTest {
@Test
public void extendsTest(){
Person p1 = new Student();
p1.setName("張三");
p1.action(p1);
Person p2 = new Teacher();
p2.setName("劉老師");
p2.action(p2);
}
}
結(jié)果:
這是學(xué)生的行為
Student的名字:張三
這是老師的行為
Teacher的名字:劉老師
二、重載
重載是在一個(gè)類里面方法名相同,但返回值或者參數(shù)類型或個(gè)數(shù)不同,比如
private String testOverload(){
return "Overload";
}
private String testOverload(String param){
return "Overload";
}
private void testOverload(int param){
System.out.println(param);
}
private String testOverload(String param1,String param2){
return "Overload";
}
重寫和重載是java多態(tài)的一種體現(xiàn)
三、接口
接口(英文:Interface),在JAVA編程語言中是一個(gè)抽象類型,是抽象方法的集合,接口通常以interface來聲明。一個(gè)類通過繼承接口的方式,從而來繼承接口的抽象方法。
接口并不是類,編寫接口的方式和類很相似,但是它們屬于不同的概念。類描述對(duì)象的屬性和方法。接口則包含類要實(shí)現(xiàn)的方法。
除非實(shí)現(xiàn)接口的類是抽象類,否則該類要定義接口中的所有方法。
接口無法被實(shí)例化,但是可以被實(shí)現(xiàn)。一個(gè)實(shí)現(xiàn)接口的類,必須實(shí)現(xiàn)接口內(nèi)所描述的所有方法,否則就必須聲明為抽象類。另外,在 Java 中,接口類型可用來聲明一個(gè)變量,他們可以成為一個(gè)空指針,或是被綁定在一個(gè)以此接口實(shí)現(xiàn)的對(duì)象。
1、接口與類相似點(diǎn):
一個(gè)接口可以有多個(gè)方法。
接口文件保存在 .java 結(jié)尾的文件中,文件名使用接口名。
接口的字節(jié)碼文件保存在 .class 結(jié)尾的文件中。
接口相應(yīng)的字節(jié)碼文件必須在與包名稱相匹配的目錄結(jié)構(gòu)中。
2、接口與類的區(qū)別:
接口不能用于實(shí)例化對(duì)象。
接口沒有構(gòu)造方法。
接口中所有的方法必須是抽象方法,Java 8 之后 接口中可以使用 default 關(guān)鍵字修飾的非抽象方法。
接口不能包含成員變量,除了 static 和 final 變量。
接口不是被類繼承了,而是要被類實(shí)現(xiàn)。
接口支持多繼承。
3、語法
[可見度] interface 接口名稱 [extends 其他的接口名] {
// 聲明變量
// 抽象方法
}
示例:
package com.zhouzy.base.t2;
public interface Car {
public void move();
}
實(shí)現(xiàn)接口的類,必須實(shí)現(xiàn)接口里面的方法
package com.zhouzy.base.t2;
public class Baoma implements Car{
@Override
public void move() {
System.out.println("我是寶馬,時(shí)速最高200公里每小時(shí),牛擦吧!");
}
}
四、枚舉
1、定義
Java 枚舉是一個(gè)特殊的類,一般表示一組常量,比如一年的 4 個(gè)季節(jié),一個(gè)年的 12 個(gè)月份,一個(gè)星期的 7 天,方向有東南西北等。
Java 枚舉類使用 enum 關(guān)鍵字來定義,各個(gè)常量使用逗號(hào) , 來分割。
例如定義一個(gè)顏色的枚舉類。
enum Color
{
RED, GREEN, BLUE;
}
示例:
enum Color
{
RED, GREEN, BLUE;
}
public class Test
{
// 執(zhí)行輸出結(jié)果
public static void main(String[] args)
{
Color c1 = Color.RED;
System.out.println(c1);
}
}
結(jié)果:
RED
2、迭代枚舉元素
enum Color
{
RED, GREEN, BLUE;
}
public class MyClass {
public static void main(String[] args) {
for (Color myVar : Color.values()) {
System.out.println(myVar);
}
}
}
結(jié)果:
RED
GREEN
BLUE
3、在 switch 中使用枚舉類
enum Color
{
RED, GREEN, BLUE;
}
public class MyClass {
public static void main(String[] args) {
Color myVar = Color.BLUE;
switch(myVar) {
case RED:
System.out.println("紅色");
break;
case GREEN:
System.out.println("綠色");
break;
case BLUE:
System.out.println("藍(lán)色");
break;
}
}
}
結(jié)果:
藍(lán)色
總結(jié)
本篇文章就到這里了嗎,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Java多線程之定時(shí)器Timer的實(shí)現(xiàn)
定時(shí)/計(jì)劃功能在Java應(yīng)用的各個(gè)領(lǐng)域都使用得非常多,比方說Web層面。本文主要為大家介紹了Java多線程中定時(shí)器Timer的實(shí)現(xiàn),感興趣的小伙伴可以了解一下2022-10-10
Java中Optional的正確用法與爭議點(diǎn)詳解
這篇文章主要介紹了Java中Optional的正確用法與爭議點(diǎn)的相關(guān)資料,需要的朋友可以參考下2022-11-11
Javamelody監(jiān)控不到sql的問題(親測有效)??
JavaMelody是用來在QA和實(shí)際運(yùn)行生產(chǎn)環(huán)境中監(jiān)控Java或Java?EE應(yīng)用程序服務(wù)器的一個(gè)開源框架,這篇文章主要介紹了Javamelody監(jiān)控不到sql(親測有效)??,需要的朋友可以參考下2022-10-10
Java substring方法實(shí)現(xiàn)原理解析
這篇文章主要介紹了Java substring方法實(shí)現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
SpringMVC中的@RequestMapping注解解析
這篇文章主要介紹了SpringMVC中的@RequestMapping注解解析,SpringMVC使用@RequestMapping注解為控制器指定可以處理哪些?URL?請(qǐng)求,在控制器的類定義及方法定義處都可標(biāo)注@RequestMapping,需要的朋友可以參考下2023-12-12

