201871010115-- Mabei「オブジェクト指向プログラミングJAVA」の学習のまとめの第2週

プロジェクト

コンテンツ

この作品は、コースに属し

https://www.cnblogs.com/nwnu-daizh/

どこの仕事でこの要件

https://www.cnblogs.com/nwnu-daizh/p/11475377.html

ジョブの学習目標

  1. 教師は、独立した研究の理論的な知識の要件に応じて、今週の研究を完了するために、指導方法を適応させます。
  2. Javaアプリケーションプログラムの構造をマスター。
  3. マスターと変数のデータ型Java言語。
  4. 表現の様々なタイプのJavaの演算子の建設を使用することを学びます。
  5. Javaアプリケーション制御入力と出力テクノロジー。
  6. (キー); Javaプロセス制御技術(分岐、ループ)をマスター
  7. 数学マスタークラス、Stringクラスの使用法。(難易度)

エッセイボーエンのテキストコンテンツ:

パートI:比較的基本的な文法と組み合わせたJavaとCの類似点と相違点は、今週の理論的な知識(30ポイント)を要約したもの

言葉の基本的な理解のために、両方が比較的似ています。すべてのオブジェクト指向言語なので、構文のほとんどが似ています。それはプログラマのためのより簡単になるように、ポインタの概念がないので、しかし、比較的簡単にJAVA、JAVAを使用するように、Java仮想マシンのメモリの回復を経て完成されています。C ++プログラマはひどく扱った場合、プログラムがクラッシュやその他の問題が発生する可能性があり、メモリのアプリケーションとリリースを習得する必要があります。JAVA言語、その後、より良い学ぶために、C ++言語、サードパーティのライブラリは、など、スイングJAVAとして、ACE C ++クラスライブラリ不可欠であり、そのために非常に優れている、これらのスキルを習得する必要があります。それがトップ3であるどちらも、ビューの言語の観点からランク付けします。JAVAわずかな利点。どちらの雇用の見通しが開発を持っていますが、最初は比較的容易JAVAへの転移が比較的やや困難、およびC ++ C ++ JAVAサブを学びます。上記の個人的な理解は、提案された自己学習のJavaバー場合、一般的には、C ++は、比較的容易になります。差:------ JAVAとC ++は、オブジェクト指向言語です。すなわち、それらは、オブジェクト指向の考え方(カプセル化、継承、多態性)を達成することができる、です。そして、C ++ C言語の多数のユーザーの世話をし、Cとの互換性があるために、自身がクラスで唯一の言語のCになる作り、多かれ少なかれそのオブジェクト指向の徹底に影響を与えました!JAVAは、明確に小さく、より簡単な構文を習得することを完全にオブジェクト指向言語です。様々なプログラミング言語が、集中的な研究の基礎となってCに固有の欠陥を解決するため++基本的に他の言語の欠点を放棄するに従ってたです。相違点よりも類似点ですが、いくつかの主要な2つの異なる言語を尋ね、JavaやC ++はJavaが学ぶことが簡単かつ容易なプログラミング環境作り。リストのみより有意差:

1。ポインタJAVA言語は、プログラマが直接メモリポインタにアクセスするには何のポインタを見つけることはできませんことができ、自動メモリ管理機能を追加し、効果的な野生のポインタによって引き起こされるシステムがクラッシュしたとして、C / C ++言語のポインタ操作ミスを防止します。しかし、それは内部にポインタJAVA仮想マシンが存在しないことを意味するか、ポインタを使用しますが、部外者はそれを使用することはできませんしません。これは、セキュアなJavaプログラムを容易にします。

2。多重継承のC ++は、複数の親クラスがクラスを派生できますC ++の機能で多重継承をサポートしています。多重継承の機能は非常に強力ですが、複雑での使用やトラブルの多くを引き起こしますが、コンパイラは、達成することは容易ではありません。Javaは多重継承をサポートしていますが、複数のインターフェイスを継承するクラスを許可しませんC ++多重継承機能を実現するために、だけでなく、不便の多くの++多重継承の実装cをもたらし避けるために、(+実装拡張)。

3。Javaデータ型とクラス完全なオブジェクト指向言語、関数と変数部分は、クラスの一部である必要があります。基本データ型に加えて、アレイを含むクラスオブジェクトの残りの部分は、あるとして。オブジェクトクラスでそれらをカプセル化し、データを合成するための方法であって、各オブジェクトは、そのように、それらの特性及び動作を実現することができます。C ++は、グローバル変数と関数を定義することができます。また、Javaは不要なトラブルをなくし、構造体と共用体でのC / C ++でキャンセル。

4。すべてのオブジェクトがメモリ・スタックに基づいた新しい演算子を使用しているJavaで自動メモリ管理プログラムは、この演算子はC ++のnew演算子と似ています。)、R =新しい読む(読む; r.work();文の読みR =新しい読む();スタック構造の上に確立:次の文は、オブジェクトのメソッドを呼び出す動作し、読むことで、オブジェクトのクラスを作成します読むの一例。Javaの自動無用メモリ回復操作、プログラマは削除する必要はありません。そして、プログラムによるc市市備は、負投げプログラムの設計者の増加をメモリリソースを解放する必要があります。Javaは、オブジェクトが再利用されるようにされていない場合、メモリのガベージコレクタは、それがタグ付けされた場合、削除を示すために。メモリ回復プログラムでのJAVAは、バックグラウンドで実行役に立たないスレッド、動作するように自由時間の使用です。

5。演算子のオーバーロードJavaは、演算子のオーバーロードをサポートしていません。演算子のオーバーロードは、Javaクラスで一般的にこの機能を実現することができますが、1010年C顕著な特徴であると考えられますが、演算子のオーバーロードの容易さは、まだ多くのことを欠けています。演算子のオーバーロードをサポートしていないJava言語は、できるだけ単純なJava言語を維持することです。

6。Javaは、前処理機能の前処理機能をサポートしていません。C / Cは、前処理として知られているコンパイルプロセスのプリコンパイルされた1010の段階を有します。プリプロセッサは、開発者の利便性を提供しますが、それはコンパイル丁の複雑さを増します。Java仮想マシンは、プリプロセッサはありませんが、それは(輸入)import文を提供し、市市のCプリプロセッサ機能が類似しています。

7. Javaは市市、関数内のコードの組織は、関数がグローバル変数のプログラムにアクセスすることができますcのcをデフォルトの関数パラメータ、およびサポートをサポートしていません。C市市は、Javaクラスのメソッドを持つ1010年のクラスメソッドが原因市市はまだCをサポートされているCには、しかし、非常によく似ているC、接続タイプの関数であるクラスのアルゴリズムを提供する、クラスを追加し、彼らは1010の開発cが停止することはできません人事機能、方法及び機能プログラムの結果カオス的混合を使用するようにします。Javaは1010のC OOよりも純粋な言語として機能していない、クラスに含まれるすべてのルーチンを強制的にJava開発者は、実際には、この方法は、ルーチンによって実現することができる、より良いコーディングを整理するために、開発者を奨励。

C 8及びC 1010年文字列は、達成するためにJavaクラス・オブジェクトに1010のCおよびCプログラムの終了を表すヌル終端文字列を使用して文字列(文字列とStringBufferの)で、文字列変数をサポートしていませんこれらのクラスストリングクラスのオブジェクトによって実装されるJava言語オブジェクトのコアは、以下の利点を有する:(1)システム全体にアクセス文字列と文字列要素を確立する方法は同じであり、(2)文字列クラスとして(3); Java言語の定義ではなく、外付け部品の延長としての一部のJavaランタイム実行チェック空の文字列、ランタイムエラーのいくつかを排除することができますが発生し、(4)、文字列の「10」の接続操作。

9.「後藤」文「恐ろしい」goto文は、CおよびC ++技術的に言語の合法的な部分である「遺物」、参照後藤ステートメントは、理解しやすい、プログラム構造に子供のために使用されるgoto文を混乱の原因となっています無条件ジャンプサブルーチン技術と多分岐構造。広大な敷地を考えると、それはキーワードとしてはgotoを指定しますが、Javaは、goto文を提供していませんが、それはシンプルで読みやすいプログラムの使用をサポートしていません。

L0。CおよびC市市における型変換は、時には必須のクラスの自動変換の問題を伴う暗黙的なデータ型変換を、現れます。例えば、1010の(c)に整数変数に浮動小数点値であること、及び仮数を除去することができます。Javaは1010年の自動Cのキャストをサポートしていない、必要であれば、プログラムによって明示的にキャストする必要があります。機構を捕捉するための11の例外JAVA異常な例外は、システムの耐障害性を高める{//例外コード} exceptionTypeが異常なプロセスタイプを示すキャッチ(exceptionType名){//}を試みることができます。C ++はそれほど便利なメカニズムではありません。

パートII:実験の部

実験名:実験2つの基本的なJavaプログラミング(1)

1.目的:

(1)2つの方法でJavaプログラムの開発とIDEコマンドラインの基本的な手順に慣れてきます。

(2)統合開発環境Eclipseの下でJavaソースコードをインポートするプロセスを習得。

(3)Java言語型マスター基本的なプログラム、変数、演算子、式様々なタイプの、入力および出力フロー制御の基本的な構文のデータ構造。

(4)Mathクラス、Stringクラス、StringBuilderクラスの使用を習得。

3.実験の手順と内容:

実験1つのピアレビュー手続(10分)

実験2(5分)

書かれたJavaアプリケーションは、次のコード、出力ストリングクラスのオブジェクトS3の値を含みます。

次のように1>コードは次のとおりです。

パッケージJavaTest;

パブリッククラスzxxx {

パブリック静的無効メイン(文字列[] args){

// TODO自動生成されたメソッドスタブ

文字列S1 = "こんにちは!";

文字列s2 = "世界";

文字列S3 = S1 + S2。

System.out.println(S3)。

}

}

次のように2>の結果は以下のとおりです。

 

 

 

 

 

 

実験3(5分)

StringBuilderクラスオブジェクトの観察プログラムの結果と実験結果と2のための変更実験2 S1、S2、S3、および差のStringクラスのオブジェクトStringBuilderクラスのオブジェクトを理解します。

次のように1>コードは次のとおりです。

パッケージJavaTest;

パブリッククラスzxxx {

パブリック静的無効メイン(文字列[] args){

// TODO自動生成されたメソッドスタブ

StringBuilderのS1 =新しいStringBuilderの( "こんにちは!");

StringBuilderのS2 =新しいStringBuilderの( "世界")。

        StringBuilderのS3 =新しいStringBuilderの();

S3.append(S1)。

        S3.append(S2)。

        System.out.println(S3)。

}

 

}

次のように2>の結果は以下のとおりです。

 

 

 

 

 

 

 

 

 

 

 

データ・タイプのような3> Stringクラスオブジェクト。

StringBuilderクラスのオブジェクトは、オブジェクトを作成し、特定の操作を実装するために、このオブジェクトのメソッドを呼び出す必要があります。

実験4(5分)

Javaアプリケーションのコマンドライン引数の使用を理解し、コマンドラインで次の試運転手順。

次のように1>コードは次のとおりです。

パブリッククラスメッセージ{}
  パブリック静的無効メイン(文字列[] args){
IF(引数[0] .equals( " - H"))System.out.print( "こんにちは")。
    そうであれば(引数[0] .equals( " - G"))System.out.print( "さようなら")。
  以下のために(INT I = 1; I <args.length; iは++)
    System.out.print(」「+引数[I])。
  System.out.println( "!");
  }
}

(2)図の実行結果の:

 

 

 

 

実験4:Javaアプリケーションのコマンドライン引数の使用を理解し、次のコマンドラインでプログラムを試運転。

public class Message

{  

public static void main(String[] args)

  {     

  if (args[0].equals(“-h”)) System.out.print(“Hello”);

    else if(args[0].equals(“-g”)) System.out.print(“goodbye,”);

  for(int i=1;i<args.length;i++)

    System.out.print(“  ”+args[i]);

  System.out.println(“!”);

  }

}

 

 

 

 

 

 

实验5:Eclipse环境下导入第3章示例程序InputTest.java步骤

(1)   新建java project如下图:

 

 

(2)   选择File->import->File System->Next,打开文件导入窗口如下图,点击上方Browse选择导入源程序并选中,点击下方Browse选择源程序导入位置为新项目InputTest/src位置后,点击finish完成导入。

 

 

 

 

 

 

 

 

(3)   打开InputTest项目src文件夹的缺省包,双击InputTest.java在IDE源程序编辑区打开文件。

(4)   右键单击InputTest.java文件名打开快捷菜单,选择Run as->java application运行此程序,结合程序运行结果,理解代码中Scanner类对象用法,掌握java控制台输入方法。

(5)代码如下:

import java.util.*;

 

/** 

* This program demonstrates console input. 

* @version 1.10 2004-02-10 

* @author Cay Horstmann 

*/

public class InputTest

{   

public static void main(String[] args)   

{      

Scanner in = new Scanner(System.in);//通过控制台进行输入时,

//需要构建一个Scanner对象,并与“标准输入流”System.in关联。

 get first input      

System.out.print("What is your name? ");//输入名字      

String name = in.nextLine();//定义一个String类,用来显示计算机读入//的字符串“What is your name?”的内容;       

get second input      

System.out.print("How old are you? ");//输入年龄      

int age = in.nextInt();//定一个整形,用来显示计算机读入的字符串

//“How old are you内容;       

 display output on console      

System.out.println("Hello, " + name + ". Next year, you'll be " + (age + 1));//最后显示Hello,加上你输入的名字,再加

//上.next year, you'll be 在加上输入年龄加一。   

}

}

 

 

 

 

 

 

 

实验6:按照实验5操作步骤,导入WriteReadFileTest.java示例程序,运行程序并理解程序代码,观察项目文件夹下文件myfile.txt的内容,掌握文件的输入输出操作。

(1)代码如下

import java.io.File;

import java.io.FileNotFoundException;

import java.io.PrintWriter;

import java.util.Scanner;

import java.util.Arrays;

 

public class WriteReadFileTest {

 

    /**

     * @param args

     * @throws FileNotFoundException

     */

    public static void main(String[] args) throws FileNotFoundException {

 

        //写入文件演示

        PrintWriter out = new PrintWriter("myfile.txt");

        out.println("姓名 高数 Java 数据结构 平均成绩 总成绩");

        out.println("张三 20 30 40 0 0");

        out.println("李四 50 60 70 0 0");

        out.close();//切记,输出完毕,需要close

         

         

        //读入文件演示

        Scanner in = new Scanner(new File("myfile.txt"));//为myfile.txt这个File创建一个扫描器in

        int number = 1;//行号

        while(in.hasNextLine()){//判断扫描器是否还有下一行未读取,该循环把文件的每一行都读出

            String line = in.nextLine();//读出myfile.txt的下一行

            System.out.println("第"+(number++)+"行的内容" +"="+line);

             

            Scanner linescanner = new Scanner(line);//对每一行的内容建立一个扫描器

            linescanner.useDelimiter(" ");//使用空格作为分隔符

            String name = linescanner.next();

            String math = linescanner.next();

            String java = linescanner.next();

            String ds = linescanner.next();

            String avg = linescanner.next();

            String total = linescanner.next();

            System.out.println("name="+name+" math="+math+" java="+java+" ds="+ds+" avg"+avg+" total="+total);

        }

        in.close();//读入完毕,最后需要对其进行close。   

 

 }

}

(2)运行结果如下

 

 

 

 

 

实验7:按照实验5的操作步骤,导入第3章3-3——3-4示例程序,掌握两个程序循环控制结构的用途。

(1)代码如下:

import java.util.*;

 

/**

 * This program demonstrates a <code>while</code> loop.

 * @version 1.20 2004-02-10

 * @author Cay Horstmann

 */

public class Retirement

{

   public static void main(String[] args)

   {

      // read inputs

      Scanner in = new Scanner(System.in);   //通过控制台进行输入时,需要构建一个Scanner对象,并与“标准输入流”System.in关联。

 

      System.out.print("How much money do you need to retire? ");

      double goal = in.nextDouble();//输入"How much money do you need to retire? "的内容;

 

      System.out.print("How much money will you contribute every year? ");

      double payment = in.nextDouble();//输入"How much money will you contribute every year? "的内容;

 

      System.out.print("Interest rate in %: ");

      double interestRate = in.nextDouble();//输入"Interest rate in %: "的内容;

 

      double balance = 0; //定义双精度型 balance,并进行初始化;

      int years = 0;      //定义整型years,并进行初始化;

 

      // update account balance while goal isn't reached

      while (balance < goal)                   //while循环

      {

         // add this year's payment and interest

         balance += payment;                   //balance=balance + payment;

         double interest = balance * interestRate / 100;

         balance += interest;

         years++;

      }

 

      System.out.println("You can retire in " + years + " years.");

   }

}

 

 

 

 

 

 

(2.1)代码如下:

import java.util.*;

 

/**

 * This program demonstrates a <code>do/while</code> loop.

 * @version 1.20 2004-02-10

 * @author Cay Horstmann

 */

public class Retirement2

{

   public static void main(String[] args)

   {

      Scanner in = new Scanner(System.in);

 

      System.out.print("How much money will you contribute every year? ");

      double payment = in.nextDouble();

 

      System.out.print("Interest rate in %: ");

      double interestRate = in.nextDouble();

 

      double balance = 0;

      int year = 0;

 

      String input;

 

      // update account balance while user isn't ready to retire

      do

      {

         // add this year's payment and interest

         balance += payment;

         double interest = balance * interestRate / 100;

         balance += interest;

 

         year++;

 

         // print current balance

         System.out.printf("After year %d, your balance is %,.2f%n", year, balance);

 

         // ask if ready to retire and get input

         System.out.print("Ready to retire? (Y/N) ");

         input = in.next();

      }

      while (input.equals("N"));

   }

}

 

 

 

 

 

实验8:

(1)代码如下:

import java.util.*;

 

/**

 * This program demonstrates a <code>for</code> loop.

 * @version 1.20 2004-02-10

 * @author Cay Horstmann

 */

public class LotteryOdds

{

   public static void main(String[] args)

   {

      Scanner in = new Scanner(System.in);

 

      System.out.print("How many numbers do you need to draw? ");

      int k = in.nextInt();   //输入字符串"How many numbers do you need to draw? "的内容;

 

      System.out.print("What is the highest number you can draw? ");

      int n = in.nextInt();  //输入字符串"What is the highest number you can draw? "的内容;

 

      /*

       * compute binomial coefficient n*(n-1)*(n-2)*...*(n-k+1)/(1*2*3*...*k)

       */

 

      int lotteryOdds = 1;

      for (int i = 1; i <= k; i++)    //for循环;

         lotteryOdds = lotteryOdds * (n - i + 1) / i;

 

      System.out.println("Your odds are 1 in " + lotteryOdds + ". Good luck!");

   }

}

  

 

 

 

 

 

4.实验总结

  第  本次实验的过程中,我掌握了进行java编程所需的最基本的知识,为将来的学习打下了必要的基础。经过实验之后我了解到了Java语言有8种数据类型,其中4种整型、2种浮点类型、1种用于表示Unicode编码的字符单元的字符类型char和1种用于表示真值的boolean类型。我学会了使用Java运算符构造各类表达式,掌握了Java流程控制技术,但是对string类和数组类的用法还是不太熟悉,之后我会通过课后的学习和网上的课程相结合,将它们的用法弄懂,看懂,并且加以运用。

おすすめ

転載: www.cnblogs.com/G19990718/p/11494504.html