java使用對象和類編寫程序,java面向對象編程開發

本文目錄一覽:

java程序編寫

這個問題和多態有著直接關係,首先封裝兩個類,貓類和狗類,定義好屬性和值,定義行為,吃,跑,跳等,再新建一個方法實現他們,具體多態只是可以參考下面解釋。

Java的多態是java要實現的多種形式

一、實現多態的三個條件(前提條件,向上轉型、向下轉型)

1、繼承的存在;(繼承是多態的基礎,沒有繼承就沒有多態)

2、子類重寫父類的方法。(多態下會調用子類重寫後的方法)

3、父類引用變數指向子類對象。(涉及子類到父類的類型轉換)

向上轉型 Student person = new Student()

將一個父類的引用指向一個子類對象,成為向上轉型,自動進行類型轉換。此時通過父類引用變數調用的方法是子類覆蓋或繼承父類的方法,而不是父類的方法此時通過父類引用變數無法調用子類特有的方法。

向下轉型 Student stu = (Student)person;

將一個指向子類對象的引用賦給一個子類的引用,成為向下轉型,此時必須進行強制類型轉換。向下轉型必須轉換為父類引用指向的真實子類類型,,否則將出現ClassCastException,不是任意的強制轉換

向下轉型時可以結合使用instanceof運算符進行強制類型轉換,比如出現轉換異常—ClassCastException

關於java的基礎知識學習,一定要多看視頻 多看視頻 多看視頻 重要的事情說三遍,因為視頻不會使學習變得枯燥,推薦b站上高淇講得還不錯,可以看看視頻了解一下什麼是java中的多態。

二、多態(Polymorphism)按字面的意思就是「多種狀態」。在面向對象語言中,介面的多種不同的實現方式即為多態。引用Charlie Calverts對多態的描述——多態性是允許你將父對象設置成為一個或更多的他的子對象相等的技術,賦值之後,

1.把不同的子類對象都當作父類來看,可以屏蔽不同子類對象之間的差異,寫出通用的代碼,做出通用的編程,以適應需求的不斷變化。

2.賦值之後,父類型的引用就可以根據當前賦值給它的子對象的特性以不同的方式運作。也就是說,父親的行為像兒子,而不是兒子的行為像父親。

3.比如從某個基類派生出多個子類,其基類有一個虛方法Tdoit,然後其子類也有這個方法,但行為不同,然後這些子類對象中的任何一個可以賦給其基類對象的引用,或者說將子對象地址賦給基類指針,這樣其基類的對象就可以執行不同的操作了。

4.實際上你是在通過其基類的引用來訪問其子類對象的,你要做的就是一個賦值操作。

5.使用繼承性的結果就是當創建了一個類的家族,在認識這個類的家族時,就是把子類的對象當作基類的對象,這種認識又叫作upcasting(向上轉型)。這樣認識的重要性在於:我們可以只針對基類寫出一段程序,但它可以適應於這個類的家族,

6.因為編譯器會自動找出合適的對象來執行操作。這種現象又稱為多態性。而實現多態性的手段又叫稱動態綁定(dynamic binding)。

7.父對象就可以根據當前賦值給它的子對象的特性以不同的方式運作(摘自「Delphi4 編程技術內幕」)。簡單的說,就是一句話:允許將子類類型的指針賦值給父類類型的指針。多態性在Object Pascal和C++中都是通過虛函數實現的。

8.多態指同一個實體同時具有多種形式。它是面向對象程序設計(OOP)的一個重要特徵。如果一個語言只支持類而不支持多態,只能說明它是基於對象的,而不是面向對象的。C++中的多態性具體體現在運行和編譯兩個方面。

9.運行時多態是動態多態,其具體引用的對象在運行時才能確定。編譯時多態是靜態多態,在編譯時就可以確定對象使用的形式。

10.多態:同一操作作用於不同的對象,可以有不同的解釋,產生不同的執行結果。在運行時,可以通過指向基類的指針,來調用實現派生類中的方法。

C++中,實現多態有以下方法:虛函數,抽象類,覆蓋,模板(重載和多態無關)。

OC中的多態:不同對象對同一消息的不同響應.子類可以重寫父類的方法

多態就是允許方法重名 參數或返回值可以是父類型傳入或返回。

編寫一個JAVA類與對象程序 求一參考

//學生類

class Student{

private String name; //姓名

private int age; //年齡

public Student(){

}

public Student(String name, int age){

this.name = name;

this.age = age;

}

public String getName(){

return this.name;

}

public void setName(String name){

this.name = name;

}

public int getAge(){

return this.age;

}

public void setAge(int age){

this.age = age;

}

public void study(){

System.out.println(“普通學生的學習方法”);

}

}

//本科生類

class Undergraduate extends Student{

private String specialty; //專業

public Undergraduate(){

}

public Undergraduate(String name, int age, String specialty){

super(name, age);

this.specialty = specialty;

}

public String getSpecialty(){

return this.specialty;

}

public void setSpecialty(){

this.specialty = specialty;

}

public void study(){

System.out.println(“研究生的學習方法”);

}

}

//研究生類

class Postgraduate extends Student{

private String studydirection; //研究方向

public Postgraduate(){

}

public Postgraduate(String name, int age, String studydirection){

super(name, age);

this.studydirection = studydirection;

}

public String getStudydirection(){

return this.studydirection;

}

public void setStudydirection(){

this.studydirection = studydirection;

}

public void study(){

System.out.println(“本科生的學習方法”);

}

}

public class Test01 {

public static void main(String[] args) {

int i;

Student[] stus = new Student[5];

stus[0] = new Student(“張三其”, 17);

stus[1] = new Student(“李師煊”, 18);

stus[2] = new Postgraduate(“王五”, 25, “軟體工程”);

stus[3] = new Postgraduate(“趙六”, 24, “計算機應用”);

stus[4] = new Undergraduate(“馬七”, 20, “軟體技術”);

for(i=0; istus.length; i++){

System.out.println(“姓名:” + stus[i].getName());

}

Student stu = new Postgraduate(“吳仁”, 24, “圖形圖像”); //父類引用指向子類對象

stu.study(); //動態多態

}

}

輸出:

姓名:張三其

姓名:李師煊

姓名:王五

姓名:趙六

姓名:馬七

本科生的學習方法

JAVA程序題~關於類和對象?

所謂對象就是真實世界中的實體,對象與實體是一一對應的,也就是說現實世界中每一個實體都是一個對象,它是一種具體的概念。類是具備某些共同特徵的實體的集合,它是一種抽象的概念,用程序設計的語言來說,類是一種抽象的數據類型,它是對所具有相同特徵實體的抽象。

利用學過的Java類與對象知識,按以下要求編寫程序

package com.example.demo;

public class Animal {

private String name;

private String gender;

public Animal() {

}

public Animal(String name, String gender) {

this.name = name;

this.gender = gender;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getGender() {

return gender;

}

public void setGender(String gender) {

this.gender = gender;

}

@Override

public String toString() {

return “Animal{” +

“name='” + name + ‘\” +

“, gender='” + gender + ‘\” +

‘}’;

}

}

class Fish extends Animal {

private int age;

public Fish() {

super();

}

public Fish(String name, String gender, int age) {

super(name, gender);

this.age = age;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

@Override

public String toString() {

return “我是:” + super.getName() + “,性別:” + super.getGender() + “,今年:”+ getAge() + “歲。”;

}

}

class Test {

public static void main(String[] args) {

Fish fish = new Fish(“僵小魚”,”男”, 3);

System.out.println(fish.toString());

}

}

java對象和類的一個程序

很基礎的一些東西,代碼直接貼上了:

public class Cat {

    

    public static final  String prompt=”新來了一隻貓咪!它還沒有名字”;

    

    public static final String prompt2=”新來了一隻貓咪!他叫”;

    

    public static final String record=”修改了小貓的名字”;

    

    private String name;

    

    public Cat() {

        System.out.println(prompt);

    }

    

    public Cat(String name) {

        this.name = name;

        if (null==name){

            System.out.println(prompt);

        }else {

            StringBuilder prompt = new StringBuilder();

            System.out.println(prompt.append(prompt2).append(name));

        }

    }

    

    public void name(String name){

        System.out.println(record+”原來是:”+this.getName()+”,修改後是:”+name);

        this.setName(name);

    }

    

    public static void main(String[] args) {

        final Cat cat = new Cat(“小花”);

        final Cat cat1 = new Cat();

        cat.name(“小布”);

    }

    

    public String getName() {

        return name;

    }

    

    public void setName(String name) {

        this.name = name;

    }

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/298062.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-28 12:17
下一篇 2024-12-28 12:17

相關推薦

  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Python中的while true:全能編程開發必知

    對於全能編程開發工程師而言,掌握Python語言是必不可少的技能之一。而在Python中,while true是一種十分重要的語句結構,本文將從多個方面對Python中的while…

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • Python購物車程序

    Python購物車程序是一款基於Python編程語言開發的程序,可以實現購物車的相關功能,包括商品的添加、購買、刪除、統計等。 一、添加商品 添加商品是購物車程序的基礎功能之一,用…

    編程 2025-04-29
  • lsw2u1:全能編程開發工程師的利器

    lsw2u1是一款多功能工具,可以為全能編程開發工程師提供便利的支持。本文將從多個方面對lsw2u1做詳細闡述,並給出對應代碼示例。 一、快速存取代碼段 在日常開發中,我們總會使用…

    編程 2025-04-29
  • 爬蟲是一種程序

    爬蟲是一種程序,用於自動獲取互聯網上的信息。本文將從如下多個方面對爬蟲的意義、運行方式、應用場景和技術要點等進行詳細的闡述。 一、爬蟲的意義 1、獲取信息:爬蟲可以自動獲取互聯網上…

    編程 2025-04-29
  • Vb運行程序的三種方法

    VB是一種非常實用的編程工具,它可以被用於開發各種不同的應用程序,從簡單的計算器到更複雜的商業軟體。在VB中,有許多不同的方法可以運行程序,包括編譯器、發布程序以及命令行。在本文中…

    編程 2025-04-29
  • Python一元二次方程求解程序

    本文將詳細闡述Python一元二次方程求解程序的相關知識,為讀者提供全面的程序設計思路和操作方法。 一、方程求解 首先,我們需要了解一元二次方程的求解方法。一元二次方程可以寫作: …

    編程 2025-04-29
  • 如何使用GPU加速運行Python程序——以CSDN為中心

    GPU的強大性能是眾所周知的。而隨著深度學習和機器學習的發展,越來越多的Python開發者將GPU應用於深度學習模型的訓練過程中,提高了模型訓練效率。在本文中,我們將介紹如何使用G…

    編程 2025-04-29

發表回復

登錄後才能評論