Javaの学習の第3週

研究の第3週が終了したJavaは、彼らが学んだし、レコードの所得たものについてブログを書きます。

1.オブジェクト指向

学習内容:

  1. クラスの定義を呼び出して、オブジェクトを作成し、プロパティにアクセスする、方法:最後の週
  2. オーバーロードされた方法:ルールと使用
  3. クラスのコンストラクタ:ルール、クラスの作成プロセス
  4. オーバーロードコンストラクタ:ルールと使用、マルチパラメータの設定
  5. このキーワード:①this.xxxx;②this(XX、XXX);
  6. マルチパラメータカスケードアクセス

問題と間違った質問:

  1. マルチパラメータカスケード訪問:
    ワーカークラスの定義、そのプロパティは、プロパティのアドレスと郵便番号のスタッフをAddressクラスを持っています
	public class Test {
	public static void main(String[] args) {
		
		Worker zhangsan = new Worker("zhangsan",25,2500,new Address());
		//多参级联构造,先暂时为worker的addr属性建一个新对象
		zhangsan.addr.address=("北京市海淀区清华园1号");//给worker对象的addr属性赋值
		zhangsan.addr.zipCode = ("100084");
		System.out.println(zhangsan.name 
				+ zhangsan.addr.address 				//从worker对象的addr属性取值
				+ zhangsan.addr.zipCode);	
	}
}
class Worker{					//Worker类
	String name ;
	int age;
	double salary;
	Address addr;				//addr属性为worker对象的地址和邮编
	public  Worker() {}
	public  Worker(String name , int age , double salary,Address addr) {
		this.name = name ;		//多参构造
		this.age = age;
		this.salary = salary;
		this.addr =addr;
	}
}
class Address{					//address类
	String address ;
	String zipCode ;
	public  Address() {}
	public  Address(String address , String zipCode) {
		this.address = address ;//address类的多参构造
		this.zipCode = zipCode ;
	}
}

2.オブジェクトの三つの特徴は

学習内容:

民間のパッケージ:

用途:プライベートとパブリックプロパティ・メソッド

継承は拡張しています。

1.継承の概念、要件は、親クラスを選択し
、コンストラクタ、私有財産の修正方法、修飾子制限:2. 3点を継承することはできません
3.アクセス修飾子ルール:このカテゴリにはプライベート、デフォルト、保護、国民を、同じパッケージ、制限クラスは、特別の規定バンズ
に記載の方法覆っ
5.superキーワードを使用して:super.xxxを、スーパー(XX、XXX);
オブジェクトの作成6.継承:•サブクラスオブジェクトを作成するには、作成する必要があります親オブジェクトは、・
コントラストとスーパーキーワードを7.this

ポリモーフィック:

そして文法的概念
多型の使用シナリオ:
親クラスの1メソッドのパラメータとして、サブクラスのメソッドに対応するパラメータの引数、関数呼び出し(カバー)として親クラスの様々なサブクラス
2.親戻り値クラスとして、サブクラスは、戻り値アウトとして使用するに返却認定した方法は、コールカバレッジのサブクラスで呼び出すことができなかった
上向きの移行と下向きの移行を:
親クラスのサブクラスへの参照:アップキャスト1オブジェクトは、オブジェクトは、親クラスのプロパティを使用することができます
。2.ダウンキャスト:親の参照サブクラスのオブジェクトを、その独自のサブクラスタイプに押し戻さ
①文法や異常なキャスト
②instanceofキーワードを

問題と間違った質問:

  1. 新しいアレイを形成し、それを横断するように選択された配列動物犬クラスのセット。
public class Q12 {

	public static void main(String[] args) {

		Animal[] as = new Animal[] {
				new Dog("Pluto") ,
				new Cat("Tom"),
				new Dog("Snoopy") ,
				new Cat("Garfield")};
		//将所有狗类挑选出来,放在同一个数组
		Dog[] dogs = getAllDog(as);
		for(int i = 0 ; i<dogs.length; i++) {		//遍历所有狗
			System.out.println( dogs[i].getName() );
		}
	}
	

	//挑狗的函数:
	public static Dog[] getAllDog(Animal[] as) {	//多态场景一:父类形参
		
		int acount = 0;
		//1.计数器,用来确定创建的狗数组的长度
		for(int i = 0 ; i<as.length;i++) {
			if(as[i] instanceof Dog) {
				acount++;
			}
		}
		
		Dog[] dogs = new Dog[acount];	
		//2.依计数器创建狗数组
		int size = 0;	
		//3.有效长度确定数组的下标				
		
		//4.将狗挑出来放在狗数组
		for(int i = 0 ; i<as.length;i++) {
			if(as[i] instanceof Dog) {		//符合要求,狗下标填值
				dogs[size] = (Dog)as[i];	//这里使用到了强转,从Animal[]拆出来的元素默认为Animal,其真正类型为狗,从Animal强转回来
				size++;//有效长度增加
			}
		}
		return dogs;
	}
}


class Animal{
	private String name;		//封装的属性
	public void setName(String name) {
		this.name = name;
	}
	public String getName() {
		return name;
	}
	public Animal(){}
	public Animal(String str) {
		setName(str);
	}
}
class Dog extends Animal{
	public Dog() {}
	public Dog(String str) {
		super(str);
	}
	
}
class Cat extends Animal{
	public Cat() {}
	public Cat(String str) {
		super(str);
	}
}
  1. 継承および被覆方法:
    グラフィッククラス、周囲とグラフィックスの面積を算出することができる
    有する、パターンクラスのサブクラス円半径属性
    パターンサブクラス長さ及び幅特性を有する矩形の第二
    属性の辺長を有する矩形サブクラス矩形
import java.lang.Math;
public class Question15 {

	public static void main(String[] args) {
			Circle c1 = new Circle();
			c1.radius = 3.0;			//半径为3.0的圆
			System.out.println(c1.area() + "\n" + c1.girth());
			Square s1 = new Square();
			s1.setSide(5.0);			//边长为5.0的正方形
			System.out.println(s1.area() + "\n" + s1.girth());
	}
}

class Shape{					//祖父类:图形	
	public double area() {		//能计算面积并返回
		return 0;
	}
	public double girth() {		//能计算周长并返回
		return 0;
	}
}


class Circle extends Shape{		//二叔类:圆形
	double radius;						//半径
	public double area() {				//面积
		double s;						
		s = radius * radius *  Math.PI;	
		return s;
	}
	public double girth() {				//周长
		double c;
		c = 2 * Math.PI * radius;
		return c;
	}
}

class Rect extends Shape{		//父亲类:矩形
	double length1;					//长
	double width;					//宽
	public double area() {				//面积
		double s;						
		s = length1 * width ;	
		return s;
	}
	public double girth() {				//周长
		double c;
		c = length1 + width;
		return 2*c;
	}
}
class Square extends Rect{		//自己类:正方形
	private double side;				//私有边长
	public void setSide(double side) {	//set边长时一块set父类长宽
		this.side = side;
		this.length1 = side;
		this.width = side;
	}
	public double getSide() {		
		return side;
	}
										//之后继承父类面积、周长
}

3.三つの修飾子

学習内容:

抽象抽象:
抽象クラス、抽象メソッド

問題と間違った質問:

  1. 抽象関数やメソッドの上の領域に計算されたパターンの境界:
abstract class Shape{						//抽象——祖父类:图形	
	abstract public double area() ;			//抽象方法——计算面积
	abstract public double girth() ;		//抽象方法——计算周长
}
リリース元の4件の記事 ウォンの賞賛0 ビュー125

おすすめ

転載: blog.csdn.net/Mboy_BeYourself/article/details/104444781