面對對象與面對過程的區(qū)別
相比C語言,Java和其他多數(shù)語言(c# swift objective-c kotlin)一樣都是面對對象語言
-
面向過程——步驟化
面向過程就是分析出實現(xiàn)需求所需要的步驟,通過函數(shù)一步一步實現(xiàn)這些步驟,接著依次調(diào)用即可
lucky.PNG
<1>寫一個文本框 顯示姓名
<2>寫一個輸入框
<3>寫一個文本框 顯示密碼
<4>寫一個輸入框
<5>寫一個按鈕
<6>寫一個功能 接收用戶輸入的名字
<7>寫一個功能 接收用戶輸入的密碼
<8>寫一個功能 接收用戶的點擊事件
函數(shù) 封裝代碼塊 (){
}
2.面向對象——行為化
面向對象是把整個需求按照特點,功能劃分,將這些存在共性的部分封裝成對象,創(chuàng)建了對象不是為了完成某一個步驟,而是描述某個事物在解決問題的步驟中的行為
捕獲.PNG
<1>寫一個類 TextView 文本 顏色 字體 字號 對齊
<2>創(chuàng)建對象
<3>寫一個類EditText 顯示輸入內(nèi)容
<4>創(chuàng)建對象
抽獎APP實戰(zhàn)項目知識點
1.初探面向對象編程
2.Android項目創(chuàng)建
3.xml配置文件使用
4.TextView顯示文本
5.Button接受點擊事件
6.Timer定時器
手機打開 開發(fā)者選項
點擊按鈕 切換按鈕的標題 開始抽獎和暫停之間切換 開始抽獎
準備候選人 數(shù)組保存
開始抽獎
編程實現(xiàn)
1.搭建頁面
<?xml version="1.0" encoding="UTF-8"?>
-<LinearLayout
android:orientation="vertical"
tools:context=".MainActivity"
android:layout_height="match_parent"
android:layout_width="match_parent"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 文本框commond/ctrl/alt + / -->
<TextView
android:layout_height="250dp"
android:layout_width="match_parent"
android:gravity="center"
android:textSize="30sp"
android:textColor="#FFF"
android:text="東哥的Android/iOS課程"
android:background="#2F2E2F"
android:id="@+id/tv_name"/>
<!-- 按鈕-->
<Button
android:layout_height="65dp"
android:layout_width="match_parent"
android:textSize="20sp"
android:textColor="#fff"
android:text="開始抽獎"
android:background="#D65489"
android:onClick="start"
android:layout_marginRight="50dp"
android:layout_marginLeft="50dp"
android:layout_marginTop="100dp"/>
</LinearLayout>
2.實現(xiàn)功能
package echang.pxd.luckyman;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
public class MainActivity extends AppCompatActivity {
// 準備候選人 數(shù)組
String[] names = new String[]{"筱陌","逸寒","幽寰","開心美意情","路不在此請過","魅傾心"};
Timer timer;
/**
* 1. onCreate 配置
* 2. onResume
* 3. onPause
* 4. onDestory
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
// 按鈕的點擊事件
public void start(View view){
// 將View轉化為Button
Button btn = (Button)view;
// 獲取當前的標題
String title = btn.getText().toString();
//判斷按鈕的標題
if (title.equals("開始抽獎")){
// 設置為暫停
btn.setText("暫停");
// 創(chuàng)建定時器
timer = new Timer();
// 每隔一段時間去執(zhí)行一個任務
timer.schedule(new TimerTask() {
@Override
public void run() {
produceOnePeople();
}
},0,100);
}else{
// 設置為開始抽獎
btn.setText("開始抽獎");
// 關閉定時器
timer.cancel();
}
}
// 產(chǎn)生一個隨機的人名 顯示到文本控件上
public void produceOnePeople(){
// 產(chǎn)生一個隨機數(shù)
Random random = new Random();
int index = Math.abs(random.nextInt()) % names.length;
// 從數(shù)組里面取出這個名字
String name = names[index];
// 將名字顯示到文本框上
TextView tv = findViewById(R.id.tv_name);
tv.setText(name);
}
}