1. 程式人生 > >二維數組和面向對象基礎

二維數組和面向對象基礎

inf arr 考題 for 案例 class n) mil 倒序

1:二維數組(理解)
(1)元素是一維數組的數組。
(2)格式:

  1. 數據類型[][] 數組名 = new 數據類型[m][n];
  2. 數據類型[][] 數組名 = new 數據類型[m][];
  3. 數據類型[][] 數組名 = new 數據類型[][]{{...},{...},{...}};
  4. 數據類型[][] 數組名 = {{...},{...},{...}};

(3)案例(掌握):

  1. 二維數組的遍歷
  2. 二維數組的求和
  3. 楊輝三角形

楊輝三角:

public class Array2Demo {
    public static void main(String[] args){
        Scanner sc 
= new Scanner(System.in); int n = sc.nextInt(); int[][] arr = new int[n][n]; /* * 思路: * A:任何一行的第一列和最後一列都是1; * B:從第三行開始,每一個數據是它上一行的前一列和它上一行的本列和; * C:首先定義一個二維數組,行數如果是n,列數也為n; * D:給這個二維數組任何一行的第一列和最後一列賦值為1; * E:按照規律給其他元素賦值,從第三行開始,每一個數據是它上一行的前一列 * 和它上一行的本列之和。 * F:遍歷這個二維數組。
*/ for(int i=0;i<arr.length;i++){ arr[i][0] = 1; arr[i][i] = 1; } for(int i=2;i<arr.length;i++){ for(int j=1;j<i;j++){ arr[i][j] = arr[i-1][j-1] + arr[i-1][j]; } } for(int i=0;i<arr.length;i++){
for(int j=0;j<=i;j++){ System.out.print(arr[i][j]+"\t"); } System.out.println(); } } }

2:兩個思考題(理解)
(1)Java中的參數傳遞問題
Java中只有值傳遞。

基本類型:形式參數的改變不影響實際參數
引用類型:形式參數的改變直接影響實際參數
(2)數據加密問題
綜合的小案例。

/*
某個公司采用公用電話傳遞數據信息,數據是小於8位的整數,為了確保安全,
在傳遞過程中需要加密,加密規則如下:
    首先將數據倒序,然後將每位數字都加上5,再用和除以10的余數代替該數字,
    最後將第一位和最後一位數字交換。 請任意給定一個小於8位的整數,
    然後,把加密後的結果在控制臺打印出來。 
    
題目要求:
    A:數據是小於8位的整數
        定義一個int類型的數據
        int number = 123456;
    B:加密規則
        a:首先將數據倒序
            結果 654321
        b:然後將每位數字都加上5,再用和除以10的余數代替該數字
            結果 109876
        c:最後將第一位和最後一位數字交換
            結果 609871
    C:把加密後的結果輸出在控制臺
*/
public class JMDemo {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入一個數據:");
        int number = sc.nextInt();
        String result = JM(number);
        System.out.println("加密後:"+result);
            
    }
    public static String JM(int number){
        int[] arr = new int[8];
        int index = 0;
        while(number > 0){
            arr[index] = number%10;
            index++;
            number/=10;
        }
        for(int i=0;i<index;i++){
            arr[i] = (arr[i]+5)%10;
        }
        int temp;
        temp = arr[0];
         arr[0] = arr[index-1];
        arr[index-1] = temp;
        
        String s = "";
        for(int i=0;i<index;i++){
            s += arr[i];
        }
        return s;
    }
}

3:面向對象(掌握)
(1)面向對象
面向對象是基於面向過程的編程思想
(2)面向對象的思想特點

  • A:是一種更符合我們思考習慣的思想
  • B:把復雜的事情簡單化
  • C:讓我們從執行者變成了指揮者

舉例:
買電腦
洗衣服
做飯
...
萬事萬物皆對象
(3)把大象裝進冰箱(理解)

  • A:面向過程實現
  • B:面向對象實現


註意:如何讓我們的操作更符合面向對象思想呢?

  • A:有哪些類
  • B:每個類有哪些成員
  • C:類與類的關系

(4)類與對象
A:現實世界的事物
屬性 事物的基本描述
行為 事物的功能
B:Java語言中最基本的單位是類。所以,我們要用類來體現事物
C:類
成員變量 事物屬性
成員方法 事物行為
D:類:是一組相關的屬性和行為的集合。是一個抽象的概念。
對象:是該類事物的具體存在,是一個具體的實例。(對象)

舉例:
學生:類
班長:對象
(5)類的定義及使用
A:類的定義
成員變量 定義格式和以前一樣,就是位置不同,在類中,方法外。
成員方法 定義格式和以前一樣,就是去掉了static。
B:使用類的內容
a:創建對象? 格式
類名 對象名 = new 類名();
b:如何使用成員變量和成員方法呢
對象名.成員變量
對象名.成員方法()
(6)案例:
A:學生類的定義和使用
B:手機類的定義和使用
(7)內存圖
A:一個對象的內存圖

技術分享圖片

B:二個對象的內存圖

技術分享圖片

C:三個對象的內存圖

技術分享圖片


(8)Java程序的開發,設計和特征

  • A:開發:就是不斷的創建對象,通過對象調用功能
  • B:設計:就是管理和維護對象間的關系
  • C:特征
  1. 封裝
  2. 繼承
  3. 多態

二維數組和面向對象基礎