初心者向けJava学習メモ(2)

黄舟
リリース: 2016-12-20 13:46:54
オリジナル
1333 人が閲覧しました


Java を始めるのは私が思っていたよりずっと簡単です。これまでのところ、私は Java の基本的な構文構造を理解しています。しかし、どの言語でも深く学ぶには時間と練習の積み重ねが必要であることを知っています。ブラウザ側で実行できる Java で書かれたコード。アプリケーションとの明らかな違いは、C プログラムなどのアプリケーションは main() メイン プログラムから実行を開始しますが、その実行方法は複雑です。どれくらい複雑かはよくわかりませんが、徐々に理解していきます。アプレットに関する重要な特性は、Html の値をパラメータとしてアプレットに渡すことができることです (この方法では、さまざまな効果を生み出すために Java プログラムを再コンパイルする必要がありません)。ですが、HTMLのパラメータ値を変更するだけです。HTMLコードも動的に生成できるので、Webページの動的効果を自由に制御できます

アプレットのライフサイクルには主に3つのメソッドがあります。 : init、start、stop
init(): アプレットの初期化を担当し、このメソッドはアプレットのライフサイクル全体で 1 回だけ実行されます。これは Delphi
start() の OnCreate() イベントと同じです。システムは init() の呼び出しを終了します。 その後、start() が自動的に呼び出され、現在のウィンドウが再アクティブ化されるたびにこのメソッドが呼び出されます。これは、Delphi の OnShow() イベントに似ています。
stop(): このメソッドは、ユーザーがアプレットのあるページを離れた後に呼び出されます。これにより、ユーザーがアプレットに注意を払わなかった場合に、システムの動作効率に影響を与えないように、一部のリソースの作業を停止できます。このメソッドは OnClose() と似ています。デルフィでの出来事。

以下は HelloWorld のアプレット バージョンです
ファイル名: HelloWorld.java

import java.applet.Applet;
import java.awt.Graphics;

public class HelloWorld extends Applet
{
文字列タイトル;
public void init (){
title="Hello World";
}

public voidPaint(Graphics g)
{
g.drawString(title,50,20);
}

}

プログラム main 関数はありませんが、どのように実行されるのでしょうか? アプレットはブラウザ環境で実行されるため、使用する必要がある関連タグは です。 HTML ファイル test.htm を作成します。ソース コードは次のとおりです。


最初のアプレットが登場します:



< ;/applet>




このファイルを HelloWorld.java と同じディレクトリに置き、HelloWorld.java をコンパイルした後、[テスト] をクリックします。 .htm を直接開くと、アプレット プログラムが開始されたことがわかります。または、AppletViewer コマンド AppletViewer test.htm を使用して、ブラウザを使わずにアプレットを直接実行することもできます。

次のプログラムは、全体を理解するのに役立ちます。 Java アプレットのサイクル。上で紹介したメソッドを呼び出す方法。

ファイル名: StartStop.java
import java.awt.*;
import java.applet.*;

public class StartStop extends Applet
{
StringBuffer message ;
public void init()
{
message=new StringBuffer("初期化完了...");
}

public void start()
{
message.append("開始しました...");
}

public void stop()
{
message.append("停止しました...");
}

public voidPaint(Graphics g)
{
g.drawString(message.toString(),150,50) ;
}

}

操作方法は上記と同じです(このプログラムは機械産業の「Java Concise Tutorial」を参照できます)

C言語と異なり、Javaを使用すると実装が簡単です。 GUI。 Java の AWT は純粋なオブジェクト指向言語であるため、Delphi のコンポーネントと同様に、呼び出すためのさまざまなインターフェイス要素を提供します。以下は、Java の GUI オブジェクトと Delphi の対応するコンポーネントの比較表です

Java Delphi

Button TButton
Canvas TCanvas
Checkbox TCheckbox
CheckboxGroup TRadioGroup
Choice TComboBox
Label TLabel
TextField TEdit
TextArea TMemo

ただし、JDKビジュアルな RAD (Rapid Application Development) 開発ツールではなく、Delphi のようにドラッグして移動するだけでオブジェクトを使用できるわけではなく、要素を呼び出すコードを記述する必要があります。要素が少ない場合、Java は自動的にレイアウト (レイアウト) することができますが、要素が多い場合、またはアプリケーションの要件に従って要素を配置する必要がある場合は、次のようにする必要があります。 Delphi にもパネル (Panel) がありますが、これらは主にインターフェイスをセグメント化し、大まかなレイアウトを作成するために使用されます。Java では、正確な位置を調整する必要があります。言うまでもなく、それが欠陥であることは、私がまだ学習していないためです。

開始したら、オブジェクトの概念を詳しく掘り下げてみましょう。
Date というカスタム データ型が Java で次のように作成されたとします。
public class Date{
int day;
int month;
int year;
}
次に、変数を宣言する次の 3 つのステートメントに対して、Java は変数を割り当てています。記憶力の違いは?
(1) int i;
(2) Date mybirth;
(3) Date mybirth=new Date();

明らかに存在し、割り当ては次のとおりです:
(1) Java は整数変数を整数 i に自動的に割り当てます。メモリ、通常は 2 バイト
(2) Java は Date クラスのインスタンス変数 mybirth を宣言し、その記憶領域を割り当てますが、この記憶領域に格納されるのは参照のみ、つまり現在のアドレスです。アドレスの場合、このインスタンス変数を使用したり、そのメンバーを参照したりすることはできません。
(3)Java は、Date クラスのインスタンス変数 mybirth を作成し、そのメンバー変数に十分な記憶領域を割り当て、最後にこの記憶領域への参照を返します。つまり、この記憶領域の最初のアドレスを返し、mybirth を渡します。つまり、このインスタンス変数の各メンバー (mybirth.day、mybirth.month、mybirth.year など) にアクセスするための最初のアドレスです。
基本データ型 (boolean、byte、short、char、int、long、 flat、double など) の変数を宣言すると、システムは自動的に変数にメモリを割り当てます。しかし、文字列変数またはユーザー定義変数が宣言された場合、システムはその変数にすぐにメモリを割り当てないのはなぜでしょうか? これは、文字列変数とユーザー定義変数の両方がクラス宣言のカテゴリに属しているためです。変数はデータではなく、データへの参照です。つまり、mybirth はクラスのインスタンスへのポインタとみなすことができ、そこにアドレスが格納されます。
さらに詳しく見てみると、クラスのインスタンス変数値はポインターであり、このポインターはクラスのインスタンスを指しているため、明らかに複数のクラスのインスタンス変数を異なる名前で定義し、それらすべてを 1 つのインスタンスに指すことができます。例:
University u=new University();//Universityクラスのインスタンス変数uを定義し、それにオブジェクトストレージスペースを割り当てます
University u2=u;//別のインスタンス変数u2が定義され、uの値はu2 に割り当てられています
したがって、名前が異なることを除けば、u2 と u は実際には同じものです。同じアドレスを指しているためです。

この点を明確にすることが依然として重要だと思います。これらのデータ構造はプログラマが知っておくべきことです

以上が Java を学ぶ初心者のためのメモ (2) の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート