日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

java接口的一些理解(未完待续)

發(fā)布時間:2023/12/8 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java接口的一些理解(未完待续) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

接口有2種:①是程序?qū)用娴慕涌? ? ?②java中用來解決java不能多繼承的問題,還有接口可以做到:不用修改實例名和調(diào)用,只修改實現(xiàn)類,提到代碼復(fù)用。

一、接口測試的理解:

首先別人是寫的網(wǎng)絡(luò)接口歸我們?nèi)ネㄟ^http請求獲取,然后我們在上傳請求頭時是依據(jù)后臺寫的驗證條件決定我們需要不需要上傳請求頭,但是一般情況下:content-type(請求文件格式)是需要寫在headers中的,另外就是token認(rèn)證(看后臺是否需要你登錄情況下才能操作,確定是否上傳該請求頭)。

二、別人寫的網(wǎng)絡(luò)接口供別人調(diào)用(網(wǎng)絡(luò)接口形式):

計算機語言分類有很多,如C、C++、C#、Java、Php、Python等等,她們有各自的特性及擅長的領(lǐng)域,但她們各自又不是全能的。在一個稍微大型一點的項目都會用到多種語言共同完成,那么這些編程語言如何進(jìn)行通信呢。什么意思呢,就是比如說我Java寫的一個方法,其他編程語言要怎么去調(diào)用呢?這就是本文要探討的問題了。

一般來說,方法層面的編程語言通信用的是網(wǎng)絡(luò)接口形式,只暴露出形參和結(jié)果供別人調(diào)用。接口一般分為接口定義者和接口調(diào)用者,定義者可以規(guī)定接收參數(shù)的類型及返回形式,而接口調(diào)用者則只能完全按照接口定義者規(guī)定的參數(shù)進(jìn)行訪問。就叫是我們所說的webService(網(wǎng)絡(luò)服務(wù))。

以前的做法是利用XML作接口格式定義,然后通過Http做通訊和請求,如大名鼎鼎的SOAP,其實現(xiàn)在也是的,只不過現(xiàn)在流行RestFul風(fēng)格的Rest接口形式,但用的還是XML+HTTP,那這兩者有啥區(qū)別呢?最大的區(qū)別就是SOAP返回的主要是XML格式,有時還需要附帶一些輔助文件,而Rest則還可以返回JSON類型的字符串,減少了很多繁亂的XML標(biāo)簽。本文就以Java為例,用她寫一個接口,并讓其他人去調(diào)用,以此來簡單展示接口調(diào)用是怎么樣一個過程。

鏈接1:

https://blog.csdn.net/kevin_gu6/article/details/82120408?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%88%AB%E4%BA%BA%E5%86%99%E7%9A%84java%E6%8E%A5%E5%8F%A3&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-82120408

鏈接2:

https://blog.csdn.net/weixin_30535843/article/details/98812359?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159448251319724845022707%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=159448251319724845022707&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v3~pc_rank_v2-6-98812359.first_rank_ecpm_v3_pc_rank_v2&utm_term=%E5%88%AB%E4%BA%BA%E5%86%99%E7%9A%84java%E6%8E%A5%E5%8F%A3

三、java后臺開發(fā)中遇到的接口是怎么回事:

java工作中經(jīng)常說寫一個接口,提供一個接口,這個接口是怎么回事?接口不是沒有實現(xiàn)的嗎?不是應(yīng)該說寫一個方法嗎?每次聽見寫一個接口總感覺很變扭?

回答1:別人要你提供接口肯定是這個接口的實現(xiàn)類也是由你去寫呀,只要接口規(guī)范,別人可以調(diào)用你的寫的實現(xiàn)類,也可以調(diào)用別人寫的實現(xiàn)類。

回答2

題主是沒體驗到接口的快感,,,

有個例子,,
接口是規(guī)范,是規(guī)矩,,按規(guī)矩辦事,就能夠統(tǒng)一處理,更方便。

interface TV{//電視接口,具有看電視的功能void watchTV(); } class HairTV implements TV{//海爾電視是電視,,那么他就必須具有看電視的功能。public void watchTV(){System.out.println("看電視,用的海爾電視");} }class Main{//我有個類需要加入看電視的功能TV tv =new Hair();//注意,這里,,類型是TV,,創(chuàng)建的實例是hair電視。。。。。。使用tv實例的一大串代碼。 }

假如需求變更了,,,我需要換成樂視電視,,,怎么換?
【不用接口的話】,,,所有調(diào)用都得換,,
【用了接口,,只需還一個地方】

class LeshiTV implements TV{//Leshi電視是電視,,那么他就必須具有看電視的功能。public void watchTV(){System.out.println("看電視,用的Leshi電視");} }class Main{//我有個類需要加入看電視的功能TV tv =new LeshiTV();//注意,這里,,類型是TV,,創(chuàng)建的實例是LeshiTV。。。。。。只需要修改上面這個創(chuàng)建的實例即可,,調(diào)用都不用改,很方便吧,,(學(xué)了spring的話,,上面這個實例都不用改了,) }

這也是面向?qū)ο笤O(shè)計原則之一,,,【依賴倒置原則】

回答3:接口既可以是指java語法上的接口,也可以是指程序?qū)用娴恼{(diào)用規(guī)范(這里的接口是指合作開發(fā),或者系統(tǒng)之間的調(diào)用,只要按照你寫的規(guī)范把請求返回的參數(shù)獲取到,怎么利用就是別人的事情了,就壓根不需要考慮你程序內(nèi)部怎么實現(xiàn)的了,反正調(diào)了你的接口,你就得給我所有的你本身具有的返回值)。后者和語言上的接口沒有關(guān)系

四:接口實現(xiàn)類似多繼承

題目:
通過動物游泳奔跑飛行來模擬實現(xiàn)多個接口,因為這種情況下,我們需要讓一個類同時繼承多個父類,這件事情在有些編程語言中可以通過多繼承的方式來實現(xiàn),但是JAVA中只支持單繼承,一個類只能繼承一個父類,但是可以同時實現(xiàn)多個接口,這樣也就可以達(dá)到類似于多繼承的效果

(1)

public class Animal {protected String name;public Animal(String name) {this.name = name;} }

(2)

public class Fish extends Animal implements ISwimming{public Fish(String name) {super(name);}@Overridepublic void swim() {System.out.println(this.name + "正在用尾巴游泳");} }

(3)

public class Frog extends Animal implements IRunning, ISwimming {public Frog(String name) {super(name);}@Overridepublic void run() {System.out.println(this.name + "正在往前跳");}@Overridepublic void swim() {System.out.println(this.name + "正在蹬腿游泳");} }

(4)

public class Cat extends Animal implements IRunning{public Cat(String name) {super(name);}@Overridepublic void run() {System.out.println(this.name + " 正在用四條腿跑步");} }

(5)

public class Duck extends Animal implements ISwimming, IRunning, IFlying {public Duck(String name) {super(name);}@Overridepublic void fly() {System.out.println(this.name + "正在用翅膀飛");}@Overridepublic void run() {System.out.println(this.name + "正在用兩條腿跑");}@Overridepublic void swim() {System.out.println(this.name + "正漂在水上");} }

(6)

public interface IFlying {void fly(); } public interface ISwimming {void swim(); } public interface IRunning {void run(); }

(7)

public class Test {public static void main(String[] args) {Cat cat = new Cat("小貓");walk(cat);Duck duck = new Duck("小鴨");walk(duck);Fish fish = new Fish("小魚");swim(fish);Frog frog = new Frog("小青蛙");walk(frog);swim(frog);}public static void walk(IRunning running) {System.out.println("我?guī)е锇槿ド⒉?#34;);running.run();}public static void fly(IFlying flying) {System.out.println("我看見伙伴在飛");flying.fly();}public static void swim(ISwimming swimming) {System.out.println("我?guī)е锇橛斡?#34;);swimming.swim();} }

總結(jié)

以上是生活随笔為你收集整理的java接口的一些理解(未完待续)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。