更新時(shí)間:2020-10-27 17:43:01 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1759次
面向?qū)ο笫且环N對(duì)現(xiàn)實(shí)世界理解和抽象的方法,Java面向?qū)ο笫荍ava基礎(chǔ)中的重要內(nèi)容,本文就為大家?guī)?道經(jīng)典Java面向?qū)ο笤囶}。
1、簡(jiǎn)述面向?qū)ο蟮娜筇匦苑謩e是什么,以及主要功能:
三大特性:
1.多態(tài)
2.繼承
3.封裝
1.多態(tài)或者鴨子類型
是指不同的類調(diào)用相同的方法.
2.繼承
是指子類繼承父類的所有.
在python中分為單繼承和多繼承.
3.封裝
封裝包含給對(duì)象封裝屬性,和給一個(gè)類封裝靜態(tài)變量和方法以及私有成員
2、在類中使用classmethod裝飾的方法被存儲(chǔ)在哪塊內(nèi)存中,使用什么調(diào)用?參數(shù)有什么特點(diǎn)?
classmethod 是類方法,存儲(chǔ)在類的內(nèi)存當(dāng)中.通過類名加方法調(diào)用.參數(shù)傳入的是類.形參為clsass
3、寫一個(gè)單例模式
class A:
__instance = None
def __new__(cls, *args, **kwargs):
if A.__instance is None:
A.__instance = object.__new__(cls)
return A.__instance
4、斐波那契數(shù)列1, 2, 3, 5, 8, 13, 21.....根據(jù)這樣的規(guī)律,編程求出400萬以內(nèi)最大的斐波那契數(shù),并求出他是第幾個(gè)斐波那契數(shù)。
count = 0
def fun(n,m):
global count
if m > 4000000:
print(count)
print(n)
return
x = n + m
count += 1
fun(m,x)
fun(1,2)
結(jié)果如下:
31
3524578
5、定義一個(gè)學(xué)生類。有下面的類屬性:
1 姓名
2 年齡
3 成績(jī)(語文,數(shù)學(xué),英語)[每課成績(jī)的類型為整數(shù)]
類方法:
1 獲取學(xué)生的姓名:get_name() 返回類型:str
2 獲取學(xué)生的年齡:get_age() 返回類型:int
3 返回3門科目中最高的分?jǐn)?shù)。get_course() 返回類型:int
寫好類以后,可以定義2個(gè)同學(xué)測(cè)試下:
zm = Student('zhangming',20,[69,88,100])
返回結(jié)果:
zhangming
20
100
class Student:
def __init__(self,*args):
self.__name = args[0]
self.__age = args[1]
self.__score = args[2]
def get_name(self):
return self.__name
def get_age(self):
return self.__age
def get_course(self):
return max(self.__score)
zm = Student("leon",20,[90,88,70])
print(getattr(zm,"get_name")())
print(getattr(zm,"get_age")())
print(getattr(zm,"get_course")())
6、自定義一個(gè)類,并實(shí)例化。使用反射給對(duì)象添加一個(gè)屬性name,值為你的名字。使用反射查看name的值。
class A:
def __init__(self,*args):
self.age = args[0]
ob1 = A(18)
setattr(ob1,"name","leon")
print(getattr(ob1,"name"))
7、簡(jiǎn)述反射是怎么回事?
反射:通過 字符串 操作一個(gè)空間 (對(duì)象).
總共有四個(gè)方法:
1.getattr()
2.hasattr()
3.setattr()
4.delattr()
8、簡(jiǎn)述成員變量和局部變量的區(qū)別?
成員變量:作為類的成員直接存在類中,可以通過this引用
局部變量:在方法定義或聲明上
內(nèi)存位置不同:成員變量在堆,局部變量在棧
成員變量有默認(rèn)值初始化
局部變量沒有,必須定義賦值才能用
9、編寫Java應(yīng)用程序,該程序中有梯形類和主類。要求如下:
(1)梯形類具有屬性上底、下底、高和面積,具有返回面積的功能,在構(gòu)造方法中對(duì)上底、下底和高進(jìn)行初始化。
(2)主類用來測(cè)試梯形類的功能。
public class Ladder {
double upper;
double bottom;
double height;
double area;
public Ladder(double upper, double bottom, double height) {
super();
this.upper = upper;
this.bottom = bottom;
this.height = height;
}
//返回面積
public double getArea(){
area=(upper+bottom)*height/2;
return area;
}
}
測(cè)試類:
public class Zhu {
public static void main(String[] args) {
Ladder lad=new Ladder(2, 5, 9);
System.out.println("梯形的面積為:"+lad.getArea());
}
}
以上就是為大家?guī)淼?道經(jīng)典Java面向?qū)ο笤囶},無論是在我們的學(xué)校考試或者求職面試中都會(huì)有所考量,掌握了這些Java面向?qū)ο笤囶}等于快人一步,在面試過程中搶占先機(jī)。當(dāng)然只有這些資源是遠(yuǎn)遠(yuǎn)不夠的,本站的Java面試題庫為您敞開大門,海量經(jīng)典面試題題海等你來戰(zhàn)!
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)