12月30日 面向對象04------類的練習、包
//類 抽象類 接口的案例
/*
有足球運動員和籃球運動員
足球教練和籃球教練
爲了出國交流 跟足球相關的人員都需要學習英語
*/
abstract class People
{
abstract void eat();
}
//創建一個運動員類
//屬性:姓名 年齡
//功能:比賽 訓練 喫飯
abstract class SportMan
{
String name;
int age;
public void eat()
{
System.out.println("喫飯");
}
abstract void train();
abstract void match();
abstract void show();
}
//創建一個教練類
//屬性:姓名 年齡
//功能:教學 喫飯
abstract class Coach
{
String name;
int age;
public void eat()
{
System.out.println("喫飯");
}
abstract void teach();
abstract void show();
}
//創建一個學英語的接口
interface StudyEnglish
{
public abstract void study();
}
//足球運動員類
class FootballPlayer extends SportMan implements StudyEnglish
{
public void train()
{
System.out.println("射門訓練");
}
public void match()
{
System.out.println("中超聯賽");
}
public void show()
{
System.out.println("這是一名足球運動員,他的名字叫:"+this.name+
",他今年"+this.age+"歲。");
}
public void study()
{
System.out.println("運動員學英語");
}
}
//籃球運動員類
class BasketballPlayer extends SportMan
{
public void train()
{
System.out.println("投籃訓練");
}
public void match()
{
System.out.println("NBA");
}
public void show()
{
System.out.println("這是一名籃球運動員,他的名字叫:"+this.name+
",他今年"+this.age+"歲。");
}
}
//足球教練
class FootBallCoach extends Coach implements StudyEnglish
{
public void teach()
{
System.out.println("教人踢球");
}
public void show()
{
System.out.println("這是一名足球教練,他的名字叫:"+this.name+
",他今年"+this.age+"歲。");
}
public void study()
{
System.out.println("教練在學英語");
}
}
//籃球教練
class BasketBallCoach extends Coach
{
public void teach()
{
System.out.println("教人投籃");
}
public void show()
{
System.out.println("這是一名籃球教練,他的名字叫:"+this.name+
",他今年"+this.age+"歲。");
}
}
//測試類
public class FuZiDemo
{
public static void main(String[] args)
{
SportMan sport = new FootballPlayer();
FootballPlayer fbp = (FootballPlayer)sport;
fbp.name = "楊旭";
fbp.age = 27;
fbp.show();
fbp.train();
}
}
形參和返回值的問題
形參:
基本類型
引用類型:
類:(匿名對象) 需要的是一個該類的對象
抽象類:需要的是該抽象類的子類對象
abstract class Person
{
abstract void study();
}
class Student extends Person
{
void study()
{
System.out.println("OK");
}
}
class PersonDemo
{
public void method(Person p)
{
p.study();
}
}
public class FuZiDemo
{
public static void main(String[] args)
{
PersonDemo pd = new PersonDemo();
Person p = new Student();
pd.method(p);
}
}
接口:需要的是該接口實現類的對象
interface Love
{
abstract void love();
}
class LoveDemo
{
public void method(Love l)
{
l.love();
}
}
class Person implements Love
{
public void love()
{
System.out.println("love love love");
}
}
public class FuZiDemo
{
public static void main(String[] args)
{
LoveDemo ld = new LoveDemo();
Love l = new Person();
ld.method(l);
}
}
返回值類型
基本類型:
引用類型:
類
抽象類:返回的是該抽象類的子類對象
接口:返回的是該接口實現類的對象
鏈式編程:每次調用完畢後,返回的是一個對象
包:其實就是文件夾
作用:
把相同的類名放到不同的包中
對類進行分類管理
按照模塊和功能分
package 包名;
爲程序的第一條可執行代碼
只能有一個package語句
帶包的編譯和運行
A 手動式:
a.編寫帶包的java文件
b。通過javac編譯
c.手動創建包名
d。將b中的class文件放在c目錄的最底層
java cn.ysck.HelloWorld
B 自動式
javac -d . *.java
不同包下的類之間的訪問:
導包:import
import 包名.類名;
package class import之間的順序:
package(只能有一個) > import(可以有多個) > class(可以有多個,但是建議只一個)
權限修飾符
本類 同一個包 不同的包下(子類) 不同的包下(無關類)
private Y
默認 Y Y
protected Y Y Y
public Y Y Y Y
類及其組成所常用的修飾符
用於修飾類:public final abstract
成員變量:private protected public static final
構造方法:public protected private
成員方法:private protected public static final abstract
/*
有足球運動員和籃球運動員
足球教練和籃球教練
爲了出國交流 跟足球相關的人員都需要學習英語
*/
abstract class People
{
abstract void eat();
}
//創建一個運動員類
//屬性:姓名 年齡
//功能:比賽 訓練 喫飯
abstract class SportMan
{
String name;
int age;
public void eat()
{
System.out.println("喫飯");
}
abstract void train();
abstract void match();
abstract void show();
}
//創建一個教練類
//屬性:姓名 年齡
//功能:教學 喫飯
abstract class Coach
{
String name;
int age;
public void eat()
{
System.out.println("喫飯");
}
abstract void teach();
abstract void show();
}
//創建一個學英語的接口
interface StudyEnglish
{
public abstract void study();
}
//足球運動員類
class FootballPlayer extends SportMan implements StudyEnglish
{
public void train()
{
System.out.println("射門訓練");
}
public void match()
{
System.out.println("中超聯賽");
}
public void show()
{
System.out.println("這是一名足球運動員,他的名字叫:"+this.name+
",他今年"+this.age+"歲。");
}
public void study()
{
System.out.println("運動員學英語");
}
}
//籃球運動員類
class BasketballPlayer extends SportMan
{
public void train()
{
System.out.println("投籃訓練");
}
public void match()
{
System.out.println("NBA");
}
public void show()
{
System.out.println("這是一名籃球運動員,他的名字叫:"+this.name+
",他今年"+this.age+"歲。");
}
}
//足球教練
class FootBallCoach extends Coach implements StudyEnglish
{
public void teach()
{
System.out.println("教人踢球");
}
public void show()
{
System.out.println("這是一名足球教練,他的名字叫:"+this.name+
",他今年"+this.age+"歲。");
}
public void study()
{
System.out.println("教練在學英語");
}
}
//籃球教練
class BasketBallCoach extends Coach
{
public void teach()
{
System.out.println("教人投籃");
}
public void show()
{
System.out.println("這是一名籃球教練,他的名字叫:"+this.name+
",他今年"+this.age+"歲。");
}
}
//測試類
public class FuZiDemo
{
public static void main(String[] args)
{
SportMan sport = new FootballPlayer();
FootballPlayer fbp = (FootballPlayer)sport;
fbp.name = "楊旭";
fbp.age = 27;
fbp.show();
fbp.train();
}
}
形參和返回值的問題
形參:
基本類型
引用類型:
類:(匿名對象) 需要的是一個該類的對象
抽象類:需要的是該抽象類的子類對象
abstract class Person
{
abstract void study();
}
class Student extends Person
{
void study()
{
System.out.println("OK");
}
}
class PersonDemo
{
public void method(Person p)
{
p.study();
}
}
public class FuZiDemo
{
public static void main(String[] args)
{
PersonDemo pd = new PersonDemo();
Person p = new Student();
pd.method(p);
}
}
接口:需要的是該接口實現類的對象
interface Love
{
abstract void love();
}
class LoveDemo
{
public void method(Love l)
{
l.love();
}
}
class Person implements Love
{
public void love()
{
System.out.println("love love love");
}
}
public class FuZiDemo
{
public static void main(String[] args)
{
LoveDemo ld = new LoveDemo();
Love l = new Person();
ld.method(l);
}
}
返回值類型
基本類型:
引用類型:
類
抽象類:返回的是該抽象類的子類對象
接口:返回的是該接口實現類的對象
鏈式編程:每次調用完畢後,返回的是一個對象
包:其實就是文件夾
作用:
把相同的類名放到不同的包中
對類進行分類管理
按照模塊和功能分
package 包名;
爲程序的第一條可執行代碼
只能有一個package語句
帶包的編譯和運行
A 手動式:
a.編寫帶包的java文件
b。通過javac編譯
c.手動創建包名
d。將b中的class文件放在c目錄的最底層
java cn.ysck.HelloWorld
B 自動式
javac -d . *.java
不同包下的類之間的訪問:
導包:import
import 包名.類名;
package class import之間的順序:
package(只能有一個) > import(可以有多個) > class(可以有多個,但是建議只一個)
權限修飾符
本類 同一個包 不同的包下(子類) 不同的包下(無關類)
private Y
默認 Y Y
protected Y Y Y
public Y Y Y Y
類及其組成所常用的修飾符
用於修飾類:public final abstract
成員變量:private protected public static final
構造方法:public protected private
成員方法:private protected public static final abstract
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.