コンテンツの概要を学びます
- オブジェクトは、クラスのインスタンスであり、クラスは、設計対象である、オブジェクト・クラスを生成するために定義されなければなりません
- クラスは、類似事例の多数の抽象化プロセスへのいくつかの例から一般化したものです
4.1クラスとオブジェクト
- クラスの定義
- 1.最初のクラスは、プログラムで定義されている
class Clothes{String color;Char size;}
(定義color
およびsize
2. 2つのオブジェクトが新たなオブジェクトデータメンバを作成)new Clothes()
3.ステートメント参照名(または参照変数参照)Clothes c1;
オブジェクトC1の新しい名前を参照して4CLothes c1 = new Clothes();
- カテゴリー:公共および非パブリック・クラス、ソースが一つだけのパブリッククラスを持つことができますが、複数のクラス定義を持つことができ、メイン文書名が(同じドキュメントオープンクラス名でなければなりません1メートル級以上のものを書いてはいけませんA
class
) this
:this.color = color
パラメータの値は、(パラメータ部材のオブジェクトを参照しますthis
)new
:新しいオブジェクトを作成します。- 二つの基本的な標準クラス
java.util.Scanner
:Scanner
各基本タイプについての対応する有しnextxxx()
、対応するタイプの文字列を解析し、使用される文字列に直接アクセスする方法をnext()
テキストの行全体を得るためにnextLine()
- 1.最初のクラスは、プログラムで定義されている
import java.util.Scanner;
public class Guess {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int number = (int)(Math.random() * 10);
int guess;
do{
System.out.print("猜数(0 ~ 9):");
guess = scanner.nextInt();
}while(guess != number);
System.out.println("猜中了!");
}
}
java.math.BigDecimal
提供plus()
、subtract()
、multiply()
、divide()
import java.math.BigDecimal;
public class DecimalDemo {
public static void main(String[] args){
BigDecimal operand1 = new BigDecimal("1.0");
BigDecimal operand2 = new BigDecimal("0.8");
BigDecimal result = operand1.subtract(operand2);
System.out.println(result);
}
}
- オブジェクトの開発と平等
-
=
:基本的なタイプ、値を変数にコピーされ、オブジェクトの参照を参照して、指定された操作対象オブジェクト名==
:ベースタイプの、格納された値が同一である2つの変数を比較するステップと、操作対象と、二つの参照名を比較同じオブジェクトかどうかを参照equals()
操作対象、2つのオブジェクトを比較する値が同じです。4.2パッケージの基本的なタイプは、
-
- オブジェクトを操作すると、パッケージ内のオブジェクトの基本的なタイプ、基本タイプ
- パッカー( ラッパー): 、
Long
、、 、、Integer
Double
Float
Boolean
Byte
package cc.openhome;
public class IntegerDemo {
public static void main(String[] args){
int data1 = 10;
int data2 = 20;
Integer wrapper1 = new Integer(data1);
Integer wrapper2 = new Integer(data2);
System.out.println(data1 / 3);
System.out.println(wrapper1.doubleValue() / 3);
System.out.println(wrapper2.compareTo(wrapper2));
}
}
- 自動梱包(オートボクシング)
Integer wrapper = 10;
コンパイラが自動的に自動包装がかどうかを決定するint data1 = 10;Integer wrapper1 = new Integer(data1);
自動包装を使用して書き換えることができます。Integer data1 = 10;
- 自動アンボクシング(オートアンボクシング)の情報は、パッカーの基本的な形をテイクアウト
Integer i = 10;//自动装箱 int foo = wrapper;//自动拆箱
- 自動入力ボックスは、コンパイラの蜂蜜は、操作上のnullオブジェクトへの変数の参照を任せることはできないと、パッケージの値の範囲を超えることはできません。
-
範囲値があれば、タグがパッケージされているものと同じ値で充填され、2つの変数()かどうかは比較の結果が真の意志であり、等しいです
4.3 Arrayオブジェクト
- Javaは、オブジェクトが配列であります
- アレイは、索引付け有するデータ構造であり、アクセスはインデックス範囲を超えた場合、エラーがスローされます
- 連続アレイ内の各値をとる方法
- forループ(配列
length
プロパティは、配列内の要素の数を得ることができます)
- forループ(配列
public class Score {
public static void main(String[] args){
int[] scores = {88,81,74,68,78,76,77,85,95,93};
for(int i = 0; i < scores.length; i++){
System.out.printf("学生分数:%d %n",scores[i]);
}
}
}
- 拡張forループ
public class EnhanceScore {
public static void main(String[] args){
int[] scores = {88,81,74,68,78,76,77,85,95,93};
for(int score : scores){
System.out.printf("学生分数:%d %n",score);
}
}
}
- 宣言された二次元アレイ、キーワードの種類の横プラス[] []、
cords.length
いくつかの行があることをcords[x].length
各ラインが複数の要素を有しています
public class XY {
public static void main(String[] args) {
int[][] cords = {
{1, 2, 3},
{4, 5, 6}
};
for (int x = 0; x < cords.length; x++) {
for (int y = 0; y < cords[x].length; y++) {
System.out.printf("%2d", cords[x][y]);
}
}
}
}
- 拡張forループで
public class EnhanceXY {
public static void main(String[] args) {
int[][] cords = {
{1, 2, 3},
{4, 5, 6}
};
for (int [] row : cords){
for(int value : row){
System.out.printf("%d",value);
}
System.out.println();
}
}
}
- 使用した新たな配列要素の値を設定する方法を
java.util.Arrays
fill()
import java.util.Arrays;
public class ArrayScore {
public static void main(String[] args){
int[] scores = new int[10];
for(int score : scores){
System.out.printf("%2d",score);
}
System.out.println();
Arrays.fill(scores,60);
for(int score : scores){
System.out.printf("%3d",score);
}
}
}
- あなたは配列をコピーした場合は、基本的なアプローチは、別の新しい配列を構築することです
System.arraycopy()
、ソース配列、開始インデックスのソース、アレイの目的、開始インデックスオブジェクトの長さをコピーし、浅いコピー:この方法は、ネイティブモードコピーを各インデックス要素、5つのパラメータを使用しますArray.copyof()
別の配列シャローコピーせずに、新しい方法を確立
import java.util.Arrays;
public class CopyArray {
public static void main(String[] args){
int[] scores1 = {88,81,74,68,78,76,77,85,95,93};
int[] scores2 = Arrays.copyOf(scores1,scores1.length);
for(int score : scores2){
System.out.printf("%3d",score);
}
System.out.println();
scores2[0] = 99;//不影响score2参考的数组对象
for(int score : scores1){
System.out.printf("%3d",score);
}
}
}
- 浅いコピー:唯一の前提が各インデックス参照オブジェクトをC1だけでなく、参照する各インデックスをC2に、クラスの型宣言のアレイで使用される場合、浅いコピーで実行され
-
ディープコピー:実際には、C1各インデックスの参照オブジェクトがコピーされ、各トラクションC2に対して別々に指定
4.4 Stringオブジェクト
- 文字列は、パッケージオブジェクトの配列である
java.lang.String
クラスのインスタンス -
length()
文字列の長さを取得し、charAt()
作られた文字列を指定して、toCharArray()
文字列のchar[]
配列が返さ
import java.util.Scanner;
public class Sum {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
long sum = 0 ;
long number = 0;
do{
System.out.printf("输入数字:" );
number = Long.parseLong(scanner.nextLine());
sum += number;
}while(number != 0);
System.out.printf("总和:"+ sum);
}
}
- 文字列が含まれている「」に、限り、内容が同じであるとして、それはプログラムコードで複数回表示されるかどうか、JVMは、Stringインスタンスを設定し、文字列プールを維持します
-
Stringオブジェクトは、設立後は、コンテンツオブジェクトのいずれかを変更することはできません、オブジェクトは、文字列の内容を変更する方法はありません
4.5のJava APIクエリファイル
-
Javaは様々な方法の様々なタイプを問い合わせます
その他(知覚、思考、など)
研究では、O(╥﹏╥)の次の章では、Oで書かれている......補数を締結しました
参考資料
- 「Javaプログラミング」