达内课程-面向对象简介

来源:互联网 发布:php写入mysql数据库 编辑:程序博客网 时间:2024/06/03 01:32


对事物、算法、逻辑、概念的抽象
相关的属性数据、运算方法封装在一个类组件中

对象(实例)
理解成从图纸生产的产品
每个对象占用独立的内存空间,保存各自的属性数据
每个对象可以独立控制,让它执行指定的方法代码

引用
理解成遥控器
引用变量中保存一个对象的内存地址,通过引用变量可以找到对象的内存空间,访问它的属性数据,或控制它执行方法

Soldier类

public class Soldier {    //成员变量    int id;//默认0    int blood = 100;    //成员方法    public void go(TextView tv){        tv.setText(id+"前进"+"\n"+tv.getText());    }    public void attack(TextView tv){        if(blood == 0){            tv.setText("这是"+id+"号士兵的尸体"+"\n"+tv.getText());            return;        }        tv.setText(id+"号士兵进攻"+"\n"+tv.getText());        int b = new Random().nextInt(10);        if(blood<b){            blood = b;        }        blood -= b;        if(blood == 0){            tv.setText(id+"号士兵阵亡"+"\n"+tv.getText());        }    }}

MainActivity

public class MainActivity extends AppCompatActivity {    TextView textView;    Soldier s1;//默认null    Soldier s2;//默认null    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    public void doClick(View view) {        textView = (TextView) findViewById(R.id.textView);        switch (view.getId()) {            case R.id.button1:                f1();                break;            case R.id.button2:                f2();                break;            case R.id.button3:                f3();                break;        }    }    public void f1(){        s1 = new Soldier();        s1.id = 9527;        //用s1找到士兵对象内存空间        //访问它的属性变量id        textView.setText("士兵9527已创建"+"\n");    }    public void f2(){        s1.go(textView);    }    public void f3(){        s1.attack(textView);        textView.setText("士兵"+s1.id+"血量"+s1.blood+"\n"+textView.getText());    }}

xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"              android:layout_width="fill_parent"              android:layout_height="fill_parent"              xmlns:app="http://schemas.android.com/apk/res-auto"              android:orientation="vertical"><Button    android:id="@+id/button1"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="新建士兵1"    android:onClick="doClick"/>    <Button        android:id="@+id/button2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="前进"        android:onClick="doClick"/>    <Button        android:id="@+id/button3"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="进攻"        android:onClick="doClick"/>    <Button        android:id="@+id/button4"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="新建士兵2"        android:onClick="doClick"/>    <Button        android:id="@+id/button5"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="前进"        android:onClick="doClick"/>    <Button        android:id="@+id/button6"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="进攻"        android:onClick="doClick"/>    <TextView        android:id="@+id/textView"        android:layout_width="match_parent"        android:layout_height="wrap_content"/></LinearLayout>

FlashLight类

xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"              android:layout_width="fill_parent"              android:layout_height="fill_parent"              xmlns:app="http://schemas.android.com/apk/res-auto"              android:orientation="vertical"                android:id="@+id/layout"    android:background="@android:color/black"><ToggleButton    android:id="@+id/toggleButton"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:textOn="开"    android:textOff="关"    android:onClick="doClick"    />    <Button        android:id="@+id/button1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="红"        android:onClick="doClick"/>    <Button        android:id="@+id/button2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="白"        android:onClick="doClick"/>    <Button        android:id="@+id/button3"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="蓝"        android:onClick="doClick"/></LinearLayout>

FlashLight.java

public class FlashLight {    //属性变量,成员变量    int color = Color.BLACK;    boolean on = false;    public void turnOn(){        on = true;    }    public void turnOff(){        on = false;    }}

MainActivity.java

public class MainActivity extends AppCompatActivity {    FlashLight flashLight = new FlashLight();    LinearLayout linearLayout;    ToggleButton toggleButton;    Button red;    Button white;    Button blue;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        linearLayout = (LinearLayout) findViewById(R.id.layout);        toggleButton = (ToggleButton)findViewById(R.id.toggleButton);        red = (Button) findViewById(R.id.button1);        white = (Button)findViewById(R.id.button2);        blue = (Button)findViewById(R.id.button3);    }    public void doClick(View view) {        switch (view.getId()) {            case R.id.button1:                f1();                break;            case R.id.button2:                f2();                break;            case R.id.button3:                f3();                break;            case R.id.toggleButton:                f4();                break;        }    }    public void f1(){        //用light变量找到手电筒对象的内存空间地址        //访问它的color变量        flashLight.color = Color.RED;        show();    }    public void f2(){        flashLight.color = Color.WHITE;        show();    }    public void f3(){        flashLight.color = Color.BLUE;        show();    }    public void f4(){       //判断开关指示按钮状态        if(toggleButton.isChecked()){            flashLight.turnOn();        }else{            flashLight.turnOff();        }        show();    }    public void show(){        //根据flashlight属性控制界面        if(flashLight.on){            linearLayout.setBackgroundColor(flashLight.color);        }else{            linearLayout.setBackgroundColor(Color.BLACK);        }    }}

汽车类

Car.java

public class Car {    public String color;    public String brand;    public int speed;    public void go(TextView tv){        tv.append("\n"+color+brand+"汽车以时速"+speed+"前进");    }    public void stop(TextView tv){        tv.append("\n"+color+brand+"汽车停止");    }}

xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"              android:layout_width="match_parent"              android:layout_height="match_parent"              android:columnCount="4"              android:orientation="vertical"              android:rowCount="6">    <Button        android:id="@+id/button1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="创建汽车"        android:onClick="doClick"        />    <Button        android:id="@+id/button2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="go"        android:onClick="doClick"/>    <Button        android:id="@+id/button3"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="stop"        android:onClick="doClick"/>    <TextView        android:id="@+id/textView"        android:layout_width="match_parent"        android:layout_height="wrap_content"        /></LinearLayout>

MainActivity

public class MainActivity extends AppCompatActivity {    Car car;    Button create;    Button go;    Button stop;    TextView textView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        create = (Button)findViewById(R.id.button1);        go = (Button)findViewById(R.id.button2);        stop = (Button)findViewById(R.id.button3);        textView = (TextView)findViewById(R.id.textView);    }    public void doClick(View view) {        switch (view.getId()) {            case R.id.button1:                f1();                break;            case R.id.button2:                f2();                break;            case R.id.button3:                f3();                break;        }    }    private void f1(){        car = new Car();        //默认值如下        //color="";        //brand="";        //speed=0;        car.color = "红色";        car.brand="BMW";        car.speed=80;        textView.setText("汽车已创建");    }    private void f2(){        car.go(textView);    }    private void f3(){        car.stop(textView);    }}

宠物狗类

Dog

public class Dog {    public String name;//名字    public int hungry;//饥饿度    public int happy;//快乐度    //喂食    public void feed(TextView textView){        if(hungry==0){            textView.setText(name+"吃饱了\n"+textView.getText());            return;        }        hungry-=10;        textView.setText("给"+name+"喂食,hungry:"+hungry+"\n"+textView.getText());    }    //玩    public void play(TextView textView){        if(hungry == 100){            textView.setText(name+"很俄了\n"+textView.getText());            return;        }        happy+=10;        hungry+=10;        textView.setText("陪"+name+"玩耍,happy:"+happy+",hungry:"+hungry+"\n"+textView.getText());    }    //惩罚    public void punish(TextView textView){        happy-=10;        textView.setText("打"+name+"的pp,"+name+"哭叫:汪,happy"+happy+"\n"+ textView.getText());    }}

xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"              android:layout_width="match_parent"              android:layout_height="match_parent"              android:columnCount="4"              android:orientation="vertical"              android:rowCount="6">    <Button        android:id="@+id/button1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="创建宠物狗"        android:onClick="doClick"        />    <Button        android:id="@+id/button2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="play"        android:onClick="doClick"/>    <Button        android:id="@+id/button3"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="feed"        android:onClick="doClick"/>    <Button        android:id="@+id/button4"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="punish"        android:onClick="doClick"/>    <TextView        android:id="@+id/textView"        android:layout_width="match_parent"        android:layout_height="wrap_content"        /></LinearLayout>

MainActivity

public class MainActivity extends AppCompatActivity {    Dog dog;    Button create;    Button play;    Button feed;    Button punish;    TextView textView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        create = (Button)findViewById(R.id.button1);        play = (Button)findViewById(R.id.button2);        feed = (Button)findViewById(R.id.button3);        punish = (Button)findViewById(R.id.button4);        textView = (TextView)findViewById(R.id.textView);    }    public void doClick(View view) {        switch (view.getId()) {            case R.id.button1:                f1();                break;            case R.id.button2:                f2();                break;            case R.id.button3:                f3();                break;            case R.id.button4:                f4();                break;        }    }    private void f1(){        dog = new Dog();        dog.name = "蠢狗";        dog.hungry = 50;        dog.happy = 50;        textView.setText("电子狗已经创建");    }    private void f2(){        dog.play(textView);    }    private void f3(){        dog.feed(textView);    }    private void f4(){        dog.punish(textView);    }}
原创粉丝点击