不同修飾符使用細(xì)節(jié)
常用來修飾類悔醋、方法芬骄、變量的修飾符
public 權(quán)限修飾符鹦聪,公共訪問, 類,方法,成員變量
protected 權(quán)限修飾符,受保護(hù)訪問, 方法,成員變量
默認(rèn)什么也不寫 也是一種權(quán)限修飾符淘太,默認(rèn)訪問, 類,方法,成員變量
private 權(quán)限修飾符,私有訪問, 方法,成員變量
static 靜態(tài)修飾符 方法,成員變量
final 最終修飾符 類,方法,成員變量,局部變量
abstract 抽象修飾符 類 ,方法
我們編寫程序時(shí)撇贺,權(quán)限修飾符一般放于所有修飾符之前冰抢,不同的權(quán)限修飾符不能同時(shí)使用;
同時(shí)挎扰,abstract與private不能同時(shí)使用鼓鲁;
同時(shí),abstract與static不能同時(shí)使用橙弱;
同時(shí)燥狰,abstract與final不能同時(shí)使用。
修飾類能夠使用的修飾符
修飾類只能使用public蛀缝、默認(rèn)的目代、final、abstract關(guān)鍵字在讶,使用最多的是 public關(guān)鍵字
public class Demo {} //最常用的方式
class Demo2{}
public final class Demo3{}
public abstract class Demo4{}
修飾成員變量能夠使用的修飾符
public : 公共的
protected : 受保護(hù)的
: 默認(rèn)的
private :私有的
final : 最終的
static : 靜態(tài)的
(更多干貨java咨詢霜大,可關(guān)注公眾號(hào)“軟帝在線”)
使用最多的是 private
public int count = 100;
protected int count2 = 100;
int count3 = 100;
private int count4 = 100; //最常用的方式
public final int count5 = 100;
public static int count6 = 100;
修飾構(gòu)造方法能夠使用的修飾符
public : 公共的
protected : 受保護(hù)的
: 默認(rèn)的
private :私有的
使用最多的是 public
public Demo(){} //最常用的方式
protected Demo(){}
Demo(){}
private Demo(){}
修飾成員方法能夠使用的修飾符
public : 公共的
protected : 受保護(hù)的
: 默認(rèn)的
private :私有的
final : 最終的
static : 靜態(tài)的
abstract : 抽象的
使用最多的是 public
public void method1(){}//最常用的方式
protected void method2(){}
void method3(){}
private void method4(){}
public final void method5(){}
public static void method6(){}//最常用的方式
public abstract void method7();//最常用的方式
類作為方法參數(shù)與返回值
類作為方法參數(shù)
在編寫程序中战坤,會(huì)經(jīng)常碰到調(diào)用的方法要接收的是一個(gè)類類型的情況,那么這時(shí)碟嘴,要向方法中傳入該類的對(duì)象囊卜。如下代碼演示:
class Person{
public void show(){
System.out.println("show方法執(zhí)行了");
}
}
//測試類
public class Test {
public static void main(String[] args) {
//創(chuàng)建Person對(duì)象
Person p = new Person();
//調(diào)用method方法
method(p);
}
//定義一個(gè)方法method眠菇,用來接收一個(gè)Person對(duì)象捎废,在方法中調(diào)用Person對(duì)象的show方法
public static void method(Person p){
p.show();
}
}
類作為方法返回值
寫程序調(diào)用方法時(shí)致燥,我們以后會(huì)經(jīng)常碰到返回一個(gè)類類型的返回值,那么這時(shí)辐益,該方法要返回一個(gè)該類的對(duì)象脱吱。如下代碼演示:
class Person{
public void show(){
System.out.println("show方法執(zhí)行了");
}
}
//測試類
public class Test {
public static void main(String[] args) {
//調(diào)用method方法,獲取返回的Person對(duì)象
Person p = method();
//調(diào)用p對(duì)象中的show方法
p.show();
}
//定義一個(gè)方法method续捂,用來獲取一個(gè)Person對(duì)象宦搬,在方法中完成Person對(duì)象的創(chuàng)建
public static Person method(){
Person p = new Person();
return p;
}
}
抽象類作為方法參數(shù)與返回值
抽象類作為方法參數(shù)
開發(fā)中间校,抽象類作為方法參數(shù)的情況也很多見。當(dāng)遇到方法參數(shù)為抽象類類型時(shí)憔足,要傳入一個(gè)實(shí)現(xiàn)抽象類所有抽象方法的子類對(duì)象滓彰。如下代碼演示:
//抽象類
abstract class Person{
public abstract void show();
}
class Student extends Person{
@Override
public void show() {
System.out.println("重寫了show方法");
}
}
//測試類
public class Test {
public static void main(String[] args) {
//通過多態(tài)的方式,創(chuàng)建一個(gè)Person類型的變量,而這個(gè)對(duì)象實(shí)際是Student
Person p = new Student();
//調(diào)用method方法
method(p);
}
//定義一個(gè)方法method稳析,用來接收一個(gè)Person類型對(duì)象彰居,在方法中調(diào)用Person對(duì)象的show方法
public static void method(Person p){//抽象類作為參數(shù)
//通過p變量調(diào)用show方法,這時(shí)實(shí)際調(diào)用的是Student對(duì)象中的show方法
p.show();
}
}
抽象類作為方法返回值
抽象類作為方法返回值的情況,也是有的畦徘,這時(shí)需要返回一個(gè)實(shí)現(xiàn)抽象類所有抽象方法的子類對(duì)象。如下代碼演示:
//抽象類
abstract class Person{
public abstract void show();
}
class Student extends Person{
@Override
public void show() {
System.out.println("重寫了show方法");
}
}
//測試類
public class Test {
public static void main(String[] args) {
//調(diào)用method方法关筒,獲取返回的Person對(duì)象
Person p = method();
//通過p變量調(diào)用show方法,這時(shí)實(shí)際調(diào)用的是Student對(duì)象中的show方法
p.show();
}
//定義一個(gè)方法method杯缺,用來獲取一個(gè)Person對(duì)象,在方法中完成Person對(duì)象的創(chuàng)建
public static Person method(){
Person p = new Student();
return p;
}
}
接口作為方法參數(shù)與返回值
接口作為方法參數(shù)
接口作為方法參數(shù)的情況是很常見的袍榆,經(jīng)常會(huì)碰到塘揣。當(dāng)遇到方法參數(shù)為接口類型時(shí),那么該方法要傳入一個(gè)接口實(shí)現(xiàn)類對(duì)象才写。如下代碼演示奴愉。
//接口
interface Smoke{
public abstract void smoking();
}
class Student implements Smoke{
@Override
public void smoking() {
System.out.println("課下吸口煙,賽過活神仙");
}
}
//測試類
public class Test {
public static void main(String[] args) {
//通過多態(tài)的方式房资,創(chuàng)建一個(gè)Smoke類型的變量檀头,而這個(gè)對(duì)象實(shí)際是Student
Smoke s = new Student();
//調(diào)用method方法
method(s);
}
//定義一個(gè)方法method暑始,用來接收一個(gè)Smoke類型對(duì)象,在方法中調(diào)用Smoke對(duì)象的show方法
public static void method(Smoke sm){//接口作為參數(shù)
//通過sm變量調(diào)用smoking方法廊镜,這時(shí)實(shí)際調(diào)用的是Student對(duì)象中的smoking方法
sm.smoking();
}
}
接口作為方法返回值
接口作為方法返回值的情況嗤朴,在后面的學(xué)習(xí)中會(huì)碰到。當(dāng)遇到方法返回值是接口類型時(shí)股缸,那么該方法需要返回一個(gè)接口實(shí)現(xiàn)類對(duì)象吱雏。如下代碼演示瘾境。
//接口
interface Smoke{
public abstract void smoking();
}
class Student implements Smoke{
@Override
public void smoking() {
System.out.println("課下吸口煙镰惦,賽過活神仙");
}
}
//測試類
public class Test {
public static void main(String[] args) {
//調(diào)用method方法陨献,獲取返回的會(huì)吸煙的對(duì)象
Smoke s = method();
//通過s變量調(diào)用smoking方法,這時(shí)實(shí)際調(diào)用的是Student對(duì)象中的smoking方法
s.smoking();
}
//定義一個(gè)方法method,用來獲取一個(gè)具備吸煙功能的對(duì)象急膀,并在方法中完成吸煙者的創(chuàng)建
public static Smoke method(){
Smoke sm = new Student();
return sm;
}
}
歸納總結(jié):
類作為方法參數(shù)時(shí)龄捡,說明要向方法中傳入該類的對(duì)象
類作為方法返回值時(shí),說明該方法要返回一個(gè)該類的對(duì)象晨雳。
抽象類作為方法參數(shù)時(shí)奸腺,說明要傳入一個(gè)實(shí)現(xiàn)抽象類所有抽象方法的子類對(duì)象。
抽象類作為方法返回值時(shí)帮非,說明需要返回一個(gè)實(shí)現(xiàn)抽象類所有抽象方法的子類對(duì)象讹蘑。
接口作為方法參數(shù)時(shí),說明該方法要傳入一個(gè)接口實(shí)現(xiàn)類對(duì)象陨舱。
接口作為方法返回值時(shí)版仔,說明該方法需要返回一個(gè)接口實(shí)現(xiàn)類對(duì)象。
(更多相關(guān)java知識(shí)干貨益缎,關(guān)注“軟帝在線”公眾號(hào)獲取相關(guān)福利)