No_16_0229 Java基礎学習9日目
117544 ワード
ドキュメントのバージョン
開発ツール
テストプラットフォーム
プロジェクト名
日付
作成者
コメント
V1.0
2016.02.29
lutianfei
none
finalキーワード
マルチステート
マルチステートの概要
マルチステートの分類:
マルチステートのメンバー・アクセスの特徴:
マルチステートの長所と短所
マルチステートにおけるモデルチェンジ問題
マルチステートでの継承練習
抽象クラス
抽象クラスの概要
抽象クラスの特徴
抽象クラスのメンバーの特徴
抽象クラスのいくつかの小さな問題
インタフェース
インタフェースの概要
インタフェースの特徴
インタフェースメンバーの特徴
クラスとクラス、クラスとインタフェース、インタフェースとインタフェースの関係
抽象クラスとインタフェースの違い
finalキーワードfinalキーワード、修飾可能 特徴: 修飾された 修飾された 修飾されている finalキーワード面接問題 Eg 1:final修飾局所変数 メソッド内部では、この変数は変更できない メソッド宣言では、 基本タイプは、値が変更できない 参照タイプは、アドレス値は変更できませんが、そのオブジェクトスタックメモリの値は変更できます.
Eg 2:final修飾変数の初期化タイミング 対象構造が完成するまで
開発ツール
テストプラットフォーム
プロジェクト名
日付
作成者
コメント
V1.0
2016.02.29
lutianfei
none
finalキーワード
マルチステート
マルチステートの概要
マルチステートの分類:
マルチステートのメンバー・アクセスの特徴:
マルチステートの長所と短所
マルチステートにおけるモデルチェンジ問題
マルチステートでの継承練習
抽象クラス
抽象クラスの概要
抽象クラスの特徴
抽象クラスのメンバーの特徴
抽象クラスのいくつかの小さな問題
インタフェース
インタフェースの概要
インタフェースの特徴
インタフェースメンバーの特徴
クラスとクラス、クラスとインタフェース、インタフェースとインタフェースの関係
抽象クラスとインタフェースの違い
finalキーワード
、
、
.
、クラスは継承できない
変数が定数になり、一度だけ付与される
方法が書き換えられない
と
に分かれている場合
class Student {
int age = 10;
}
class FinalTest {
public static void main(String[] args) {
//
int x = 10;
x = 100;
System.out.println(x);
final int y = 10;
// y
//y = 100;
System.out.println(y);
System.out.println("--------------");
//
Student s = new Student();
System.out.println(s.age);
s.age = 100;
System.out.println(s.age);
System.out.println("--------------");
final Student ss = new Student();
System.out.println(ss.age);
ss.age = 100;
System.out.println(ss.age);
//
// ss
ss = new Student();
}
}
- , 。
- :
- 。 m = new ();
- , 。
- d = new ();
- :
- Fu f = new Zi();
:
- :
- class Fu{}
- class Zi extends Fu{}
- Fu f = new Zi();
- :
- abstract class Fu{}
- class Zi extends Fu{}
- Fu f = new Zi();
- :
- interface Fu{}
- class Zi implements Fu{}
- Fu f = new Zi();
:
A:
: , 。
B:
: , , 。
C:
: , 。 , 。
D:
: , 。
- ( , , , )
/*
: ( ), 。
:
, 。
( , , )。
:
A: 。
B: 。
, 。
d = new ();
d.show();
d = new ();
d.show();
C: 。
f = new ();
*/
class Fu {
public int num = 100;
public void show() {
System.out.println("show Fu");
}
public static void function() {
System.out.println("function Fu");
}
}
class Zi extends Fu {
public int num = 1000;
public int num2 = 200;
public void show() {
System.out.println("show Zi");
}
public void method() {
System.out.println("method zi");
}
public static void function() {
System.out.println("function Zi");
}
}
class DuoTaiDemo {
public static void main(String[] args) {
// 。
// f = new ();
Fu f = new Zi();
System.out.println(f.num);
//
//System.out.println(f.num2);
f.show();
//
//f.method();
f.function();
}
}
/*
* :
100
show Zi
function Fu
*/
- ( )
- ( )
?
- , 。( , )
: 。
- Zi z = (Zi)f; // f Zi
- : , 。
// :
class {
public int age = 40;
public void teach() {
System.out.println(" JavaSE");
}
}
class extends {
public int age = 20;
public void teach() {
System.out.println(" ");
}
public void playGame() {
System.out.println(" ");
}
}
//Java , ,
// , , 。 , ?
// , , 。
//
k = new ();
//
System.out.println(k .age); //40
k .teach(); //
//k .playGame(); // , !
// ,
// ,
//
k = ( ) k ;
System.out.println(k.age); //20
k.teach(); //
k.playGame(); //
- :
class Animal {
public void eat(){
System.out.println(" ");
}
}
class Dog extends Animal {
public void eat() {
System.out.println(" ");
}
public void lookDoor() {
System.out.println(" ");
}
}
class Cat extends Animal {
public void eat() {
System.out.println(" ");
}
public void playGame() {
System.out.println(" ");
}
}
class DuoTaiTest {
public static void main(String[] args) {
//
Animal a = new Dog();
a.eat();
System.out.println("--------------");
//
Dog d = (Dog)a;
d.eat();
d.lookDoor();
System.out.println("--------------");
//
a = new Cat();
a.eat();
System.out.println("--------------");
//
Cat c = (Cat)a;
c.eat();
c.playGame();
System.out.println("--------------");
}
}
class Person {
public void eat() {
System.out.println(" ");
}
}
class SouthPerson extends Person {
public void eat() {
System.out.println(" , ");
}
public void jingShang() {
System.out.println(" ");
}
}
class NorthPerson extends Person {
public void eat() {
System.out.println(" , ");
}
public void yanJiu() {
System.out.println(" ");
}
}
class DuoTaiTest2 {
public static void main(String[] args) {
//
//
Person p = new SouthPerson();
p.eat();
System.out.println("-------------");
SouthPerson sp = (SouthPerson)p;
sp.eat();
sp.jingShang();
System.out.println("-------------");
//
p = new NorthPerson();
p.eat();
System.out.println("-------------");
NorthPerson np = (NorthPerson)p;
np.eat();
np.yanJiu();
}
}
/*
:
,
-------------
,
-------------
,
-------------
,
*/
:
- ,
。
- ,
。
Eg:( )
/*
:
: , 。
:
, 。
, 。
*/
class A {
public void show() {
show2();
}
public void show2() {
System.out.println(" ");
}
}
class B extends A {
/*
public void show() {
show2();
}
*/
public void show2() {
System.out.println(" ");
}
}
class C extends B {
public void show() {
super.show();
}
public void show2() {
System.out.println(" ");
}
}
public class DuoTaiTest4 {
public static void main(String[] args) {
A a = new B();
a.show();
B b = new C();
b.show();
}
}
// :
//
//
- , 。 , 。 , , , , , 。 Java ,
( )
,
,
。
abstract
- abstract class {}
- public abstract void eat();
,
- ( ?)
- , 。 , 。
, 。
//abstract class Animal //
abstract class Animal {
//
//public abstract void eat(){} // , 。
public abstract void eat();
public Animal(){}
}
//
abstract class Dog extends Animal {}
// ,
class Cat extends Animal {
public void eat() {
System.out.println(" ");
}
}
class AbstractDemo {
public static void main(String[] args) {
//
//Animal ;
//Animal a = new Animal();
//
Animal a = new Cat();
a.eat();
}
}
- ,
- , ?
- :
:
//
abstract class Animal {
//
private String name;
//
private int age;
public Animal() {}
public Animal(String name,int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//
public abstract void eat();
}
//
class Dog extends Animal {
public Dog() {}
public Dog(String name,int age) {
super(name,age); // !!!
}
public void eat() {
System.out.println(" ");
}
}
//
class Cat extends Animal {
public Cat() {}
public Cat(String name,int age) {
super(name,age);
}
public void eat() {
System.out.println(" ");
}
}
//
class AbstractTest {
public static void main(String[] args) {
//
//
// 1:
Dog d = new Dog();
d.setName(" ");
d.setAge(3);
System.out.println(d.getName()+"---"+d.getAge());
d.eat();
// 2:
Dog d2 = new Dog(" ",3);
System.out.println(d2.getName()+"---"+d2.getAge());
d2.eat();
System.out.println("---------------------------");
Animal a = new Dog();
a.setName(" ");
a.setAge(3);
System.out.println(a.getName()+"---"+a.getAge());
a.eat();
Animal a2 = new Dog(" ",3);
System.out.println(a2.getName()+"---"+a2.getAge());
a2.eat();
// :
}
}
- :
//
abstract class Teacher {
//
private String name;
//
private int age;
public Teacher() {}
public Teacher(String name,int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//
public abstract void teach();
}
//
class BasicTeacher extends Teacher {
public BasicTeacher(){}
public BasicTeacher(String name,int age) {
super(name,age);
}
public void teach() {
System.out.println(" JavaSE");
}
}
//
class WorkTeacher extends Teacher {
public WorkTeacher(){}
public WorkTeacher(String name,int age) {
super(name,age);
}
public void teach() {
System.out.println(" JavaEE");
}
}
class AbstractTest2 {
public static void main(String[] args) {
// ,
// ( )
//
Teacher t = new BasicTeacher();
t.setName(" ");
t.setAge(30);
System.out.println(t.getName()+"---"+t.getAge());
t.teach();
System.out.println("--------------");
t = new BasicTeacher(" ",30);
System.out.println(t.getName()+"---"+t.getAge());
t.teach();
System.out.println("--------------");
//
t = new WorkTeacher();
t.setName(" ");
t.setAge(27);
System.out.println(t.getName()+"---"+t.getAge());
t.teach();
System.out.println("--------------");
t = new WorkTeacher(" ",27);
System.out.println(t.getName()+"---"+t.getAge());
t.teach();
}
}
- , ? , ?
abstract
private
final
static
( )
- , 。 , , : , , 。 , , 。 , , , 。
, ,Java, , , 。
interface
- :interface {}
implements
- :class implements {}
- ( ?)
- , 。 , 。
( ):
: ,
:
:
- ( )
- ( )
- ( )
- public static final
- , , 。
- :Object。( Object 。 Object )
- public abstract
,
- , ,
- ,
- , 。
- 。
- , ,
- : , ;
- :
- : , ;
- : ;
- :
- :
- ,
- , ,
- , ,
- :”is a” 。
- :”like a” 。
:
/*
,
:
:
,
,
:
,
,
, , :
:
,
();
(){}
:
:
,
:
:
:
;
:
*/
//
interface Jumpping {
//
public abstract void jump();
}
//
abstract class Animal {
//
private String name;
//
private int age;
public Animal() {}
public Animal(String name,int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
// ();
public abstract void eat();
// (){}
public void sleep() {
System.out.println(" ");
}
}
//
class Cat extends Animal {
public Cat(){}
public Cat(String name,int age) {
super(name,age);
}
public void eat() {
System.out.println(" ");
}
}
//
class Dog extends Animal {
public Dog(){}
public Dog(String name,int age) {
super(name,age);
}
public void eat() {
System.out.println(" ");
}
}
//
class JumpCat extends Cat implements Jumpping {
public JumpCat() {}
public JumpCat(String name,int age) {
super(name,age);
}
public void jump() {
System.out.println(" ");
}
}
//
class JumpDog extends Dog implements Jumpping {
public JumpDog() {}
public JumpDog(String name,int age) {
super(name,age);
}
public void jump() {
System.out.println(" ");
}
}
class InterfaceTest {
public static void main(String[] args) {
//
JumpCat jc = new JumpCat();
jc.setName(" A ");
jc.setAge(3);
System.out.println(jc.getName()+"---"+jc.getAge());
jc.eat();
jc.sleep();
jc.jump();
System.out.println("-----------------");
JumpCat jc2 = new JumpCat(" ",2);
System.out.println(jc2.getName()+"---"+jc2.getAge());
jc2.eat();
jc2.sleep();
jc2.jump();
// 。
}
}
(Wiz)
:https://www.cnblogs.com/lutianfei/p/5233377.html