java 類和物件的理解
物件和類的定義
過載
public class Overloading { public int test(){ System.out.println("test1"); return 1; } public void test(int a){ System.out.println("test2"); } //以下兩個引數型別順序不同 public String test(int a,String s){ System.out.println("test3"); return "returntest3"; } public String test(String s,int a){ System.out.println("test4"); return "returntest4"; } public static void main(String[] args){ Overloading o = new Overloading(); System.out.println(o.test()); o.test(1); System.out.println(o.test(1,"test3")); System.out.println(o.test("test4",1)); } }
過載 方法相同呼叫的引數型別、個數,順序,修飾符不同列印的結果不同 列印的結果是
test1
1
test2
test3
returntest3
test4
returntest4
多型
public class test2 { public static void main(String[] args) { // TODO Auto-generated method stub a am = new a(); a an = new a(); c cm = new c(); d dm = new d(); // am.cc(new a(){ // // @Override // public void cc(b bm) { // // TODO Auto-generated method stub // System.out.println("sdjghi"); // // } // }); // am.cc(new b(){ // // public void cc(b bm){ // // } // // @Override // public void ee() { // // TODO Auto-generated method stub // System.out.println("sdjghi"); // } // // }); cm.run(new b(){ @Override public void cc(b bm) { // TODO Auto-generated method stub System.out.println("sdjghi"); } @Override public void ee() { // TODO Auto-generated method stub System.out.println("sdjghi"); } }); cm.cc(cm); } private static b bm; public interface b{ void cc(b bm); void ee(); } static class a implements b { // a am = new a(); @Override public void cc(b bm) { // TODO Auto-generated method stub } @Override public void ee() { // TODO Auto-generated method stub } } static class c implements b{ public void run( b bv ){ bm =bv; bm.ee(); bm.cc(bv); } public void play(){ System.out.println("鍛鍊"); } @Override public void cc(b bm) { // TODO Auto-generated method stub ((c) bm).play(); } @Override public void ee() { // TODO Auto-generated method stub } } static class d { } }
列印的結果是
sdjghi
sdjghi
鍛鍊
public class PolTest { public static class Wine { public void name1() { System.out.println("茅臺"); } public void name2(String name) { System.out.println("五糧液"); } public void name2(String name, int a) { System.out.println("五糧液"); } } public static class jnc extends Wine { public void name1() { System.out.println("特醇劍蘭春"); } public void name2(String name) { System.out.println("尊享劍蘭春"); } public void name2(String name, int a) { System.out.println("至尊劍蘭春"); } public void drink() { System.out.println("劍蘭春好喝"); } } public static class dq extends Wine { public void name1() { System.out.println("da"); } public void name2(String name) { System.out.println("qu"); } public void name2(String name, int a) { System.out.println("sdf"); } public void drink() { System.out.println("hfg"); } } public static void main(String[] args) { // TODO Auto-generated method stub Wine wine = new dq(); wine.name2("有"); // Wine wine = new Wine(); // jnc jn= new jnc(); // wine.name1(); // jn.name1(); } }
列印結果是:qu
Java實現多型有三個必要條件:繼承、重寫、向上轉型。
所以基於繼承實現的多型可以總結如下:對於引用子類的父類型別(繼承),在處理該引用時(重寫,向上轉型),它適用於繼承該父類的所有子類,子類物件的不同,對方法的實現也就不同,執行相同動作產生的行為也就不同。
常量
public class A {
public static void main(String[] args) {
final int m =1;
A a = new A();
A b = new A();
String c ="abc";
String d ="abc";
final int f =1;
System.out.println(a);
System.out.println("---------"+b);
System.out.println(a==b);
System.out.println(a.equals(b));
System.out.println(c==d);
System.out.println(c.equals(d));
System.out.println(m==f);
System.out.println(m);
}
}
列印的結果是
[email protected]
[email protected]
false
false
true
true
true
1
匿名類
類是有class關鍵字來修飾有名稱並有“{}”,例如class A{} ,宣告物件 A a = new A(); 匿名類沒有名稱所以稱為匿名類如:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViewById(R.id.Button03).setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Intent intent = new Intent(mainActivity.this, fristActivity.class);
intent.putExtra("data", "mainActivity");
startActivity(intent);
}
});
}
new OnClickListener(){
@Override
public void onClick(View v) {
}
}); 這個就是匿名類
原本應該是這樣寫的(不是匿名類的寫法)
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViewById(R.id.Button03).setOnClickListener(new A());
}
<pre name="code" class="html">class A implements View.OnClickListener{
@Override
public void onClick(View v) {
Intent intent = new Intent(mainActivity.this, fristActivity.class);
intent.putExtra("data", "mainActivity");
startActivity(intent);
}
}
相關推薦
java 類和物件的理解
物件和類的定義 過載 public class Overloading { public int test(){ System.out.println("test1"); return 1; } public void test(in
[Java]Java類和物件記憶體分配詳解
描述 程式碼說明: 一.當Person p1 = new Person();第一次被呼叫時需要做兩件事: 1.先判斷類載入器是否載入過Person類,如果沒有則載入到Person型別到方法區 2.在堆中開闢記憶體空間,在棧中物件名引用(指向)堆的相應記憶體空間 二. p1.name = '皓皓': 將堆中n
Java類和物件(四)
抽象類和抽象方法 1. 抽象類 在 Java 面向物件當中,所有的物件都是用過類進行描繪的,但是並不是所有的類都是用來描繪物件的,如果一個類中沒有包含足夠的資訊來描繪一個具體的物件,我們把這種類定義為抽象類。 抽象類的特徵: 抽象類不能用來例項化物件,所以抽象類必須被
java類和物件及python中的類似實現
一:java類和物件 首先,我們簡單說一下類和物件的理解:所有男的這相當於一個“類”,而某個具體的人就是一個“物件” 類:當做物件的模板 物件:根據類建立,在java中,使用關鍵詞new建立新物件 java中定義一個類: public class Dog { String
Java類和物件
類的定義和例項化 1.類的定義 類在 Java 中屬於引用型別,Java 使用關鍵字 class 來宣告類。 public class People{ public String name; public int age; public Peo
Java類和物件 詳解(一)
一、面向物件簡述 面向物件是一種現在最為流行的程式設計方法,幾乎現在的所有應用都以面向物件為主了,最早的面向物件的概念實際上是由IBM提出的,在70年代的Smaltalk語言之中進行了應用,後來根據面向物件的設計思路,才形成C++,而由C++產生了Java這門
Java 類和物件,如何定義Java中的類,如何使用Java中的物件,變數
1.物件的概念 :萬物皆物件,客觀存在的事物皆為物件 2.什麼是面向物件:人關注一個物件,實際上是關注該物件的事務資訊 3.類:類是模子,確定物件將會擁有的特徵(屬性)和行為(方法)
Java類和物件知識點
Java類和物件 1.面向程式設計:我們再解決問題中,注重的是解決問題的每一個步驟和過程。以計算機的角度去看待問題2.面向物件:注重的是在為題中,設計的到哪些物件,以及物件之間有哪些關係 以自己的角度去看待問題為什麼使用面向物件?/面向物件的好處:一點點東西的變化不會影響到整
用java類和物件寫一個簡單的回合制對戰遊戲
一、什麼是物件,什麼是類類比現實生活,任何一個具體的事物都可以稱為物件,比如某臺電腦,某本書,某個人……而類就是根據物件相似的特徵和功能進行分類,物件是具體的,類是抽象的。二、類的基本格式public class 類名 {//定義屬性訪問修飾符 資料型別 屬性名;//定義
Java類和物件簡單學習
今天我們來了解一下Java的類與物件和麵向物件。 ** 一、面向物件思想 ** 1.什麼是面向物件 概述: Java語言是一種面向物件的程式設計語言,而面向物件思想是一種程式設計思想,我們在面向物件思想的指引下, 使用Java語言去設計、開發計算機
淺談JAVA中類和物件的理解
我們知道程式語言是一個幫助我們和計算機“對話”的工具,我們可以通過它去讓計算機做一些事。而JAVA語言又是其中的高階語言,那麼什麼是高階?機器語言和人類語言之間有著巨大的鴻溝,人們不斷的想要跨過這個鴻溝,在這個過程中出現了一些“工具”,就是所謂的程式語言。通過這些語言
Java類、物件和例項的理解
最近在看Python,這門面向物件的語言又引起了類的引用、物件和例項這些概念之間的糾結,我按照自己的理解總結了一下Java裡三者的關係,如果有不對的地方還希望大家指出。 類的引用和物件的概念沒什麼好弄混的,但是物件和例項之間的區別讓人疑惑,在《Thin
關於初學者如何理解面向物件和麵向過程的區別以及java中的類和物件
首先java是一門面向物件的程式語言,特別是當你剛入門C語言的同時又進行java語言的學習,這個問題就體現出來了。C語言是面向過程的程式語言,它們兩種語言處理問題的方式是不一樣的。 面向過程的程式語言的設計思路按步驟走的,你需要手把手的教它。例如上課鈴響了,學
java理解程式邏輯第11章類和物件複習作業
1.物件是用來描述客觀事物的一個實體,由一組屬性和方法構成。 2.類定義了物件將會擁有的特徵(屬性)和行為(方法)。 3.類和物件的關係是抽象和具體的關係。類是物件的型別,物件是類的例項。 4.物件的屬性和方法被共同封裝在類中,相輔相成,不可分解。 ‘5.類的使用步驟:
java中的類和物件
類 類在客觀世界裡是不存在的,是描寫物件的資訊 類是模子,確定物件將會擁有的特徵(屬性)和行為(方法) 類的特點 類是物件的型別 具有相同屬性和方法的一組物件的集合 屬性(特徵) int cpu = 5.5; int screen
java作業 類和物件
第二題風扇: 我的程式碼: package pack1; public class Fan { final int SLOW=1; final int MEDIUM=2; final int FAST=3; private int speed=SLOW; private bo
java--類、物件和方法
一個榨汁機的例子: 實現客戶購買的各種需求: 1.一杯某某果汁 2.幾杯某某果汁 3.幾杯某某果汁+幾杯某某果汁+…+幾杯某某果汁 的組合 四個類: (1)Order類 package FruitJuiceShop; /** * 訂單類 * @author MacBook
Java基礎 實驗二:類和物件
1.實驗目的 掌握類的宣告、物件的建立、方法的定義和呼叫、建構函式的使用。 2.實驗內容 1)定義一個表示學生資訊的類Student,要求如下: ① 類Student的成員變數: sNO 表示學號;
Java練習 SDUT-3339_計算長方形的周長和麵積(類和物件)
計算長方形的周長和麵積(類和物件) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 設計一個長方形類Rect,計算長方形的周長與面積。 成員變數:整型、私有的資料成員length(長)、width(寬); 構造方法如下: (
Java入門系列-14-深入類和物件
這篇文章用大量的程式碼幫你搞懂:值傳遞和引用傳遞、構造方法、方法過載、static關鍵字的使用 方法引數傳遞-值傳遞和引用傳遞 1.值傳遞 敲一敲: /** * 使用方法交換兩個變數的值 * @author Jack * */ public class Swap {