java程序 構建mycircle類_Java語言程序設計(十九)對象和類的應用實例

1.我們定義一個Circle類并使用該類創建對象,我們創建三個圓對象,1.0,25和125,然后顯示這三個圓的半徑和面積,將第二個對象的半徑改為100,然后顯示它的新半徑和面積。程序清單如下:

package testcircle1;

/**

*

* @author mjd

*/

public class TestCircle1 {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

Circle1 circle1 = new Circle1();

System.out.println("The area of the circle "+circle1.radius+"is"+circle1.getArea());

Circle1 circle2 = new Circle1(25);

System.out.println("The area of the circle "+circle2.radius+"is"+circle2.getArea());

Circle1 circle3 = new Circle1(125);

System.out.println("The area of the circle "+circle3.radius+"is"+circle3.getArea());

}

}

class Circle1{

double radius;

Circle1(){

radius =1.0;

}

Circle1(double newRadius){

radius = newRadius;

}

double getArea(){

return radius*radius*Math.PI;

}

}

9c8bcced4967ce2a1d440fdab3afc20d.png

該程序包括兩個類,其中第一個類TestCircle1是主類,它的唯一目的就是測試第二個類Circle1.在運行這個程序時,Java運行系統會調用這個主類的main方法,可以把兩個類放在同一個文件中,但是文件中只能有一個類是公共的,此外,公共類必須與文件同名,因此文件名就應該是TestCircle1.java,因為TestCircle1是公共的。

主類包含main方法,該方法創建三個對象,和創建數組一樣,使用new操作符從構造方法創建一個對象,這三個對象有不同的數據,但是有相同的方法,因此可以用getArea()方法計算它們各自的面積。可以分別使用circle1.radius,ciecle2.radius,ciecle3.radius來通過對象引用訪問數據域。

2.使用構造方法構造對象

(1)構造方法必須具備和所在類相同的名字

(2)構造方法沒有返回類型,甚至連void也沒有

(3)構造方法是在創建一個對象使用new操作符時調用的,構造方法的作用是初始化對象。

例如: public void Circle(){}在這種情況下,Circle是一個方法。

例如: new Circle()使用Circle類中的定義的第一個構造方法創建一個Circle對象。new Circle(25)調用Circle類中定義的第二個構造方法創建一個Circle對象。通常,一個類會提供一個沒有參數的構造方法,Circle(),這樣的構造方法稱為無參構造方法。

3.引用變量和引用類型

對象是通過對象引用變量來訪問的,該變量包含對對象的引用,使用如下語法格式聲明這樣的變量:

ClassName objectRefVar;

一個類基本上等同于一個程序員定義的類型,一個類就是一種引用類型,這意味著任何類型為類的變量都可以引用該類的一個實例。下面的語句聲明myCircle的類型是Circle類型:

Circle myCircle;

變量myCircle能夠引用一個Circle對象,下面的語句創建一個對象,并且將它的引用賦給變量myCircle:

myCircle = new myCircle;

利用如下的語法,可以寫一條包括聲明對象引用變量,創建對象以及將對象的引用賦值給變量的語句:

ClassName objectRefVar = new ClassName();例如:

Circle myCircle = new Circle(); Circle是類名,myCircle是對象引用變量。

4.訪問對象的數據和方法

在創建一個對象之后,它的數據和方法可以使用圓點運算符(.)來訪問和調用,該運算符也稱為對象成員訪問運算符

objectRefVar.datafield引用對象的數據域。

objectRefVar.method調用對象的方法。

例如:myCircle.radius引用myCircle的半徑,而myCircle.getArea()調用myCircle的getArea方法。

5.使用Java庫中的類

Date類

我們之前已經學習了如何使用System.currentTimeMillis()來獲得當前時間,使用除法和求余運算分解出當前的秒數,分鐘數和小時數

我們可以使用Date類中的無參構造方法為當前的日期和時間創建一個實例,它的getTime()方法返回自己從GMT時間1970年1月1日算起至今逝去的時間,它的toString方法返回日期和時間的字符串。

java.tuil.Date date = new java.util.Date();

System.out.println("The elapsed time since Jan 1,1970 is"+date.getTime()+"milliseconds");

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

6.給方法傳遞對象函數

我們舉個例子,將myCircle對象作為參數傳遞給printCircle方法

public class Test{

public static void main(String args[]){

Circle3 myCircle = new Circle3(5.0);

printCircle(myCircle);

}

public static void printCircle(Circle3 c){

System.out.println("The area of the circle of radius"+c.getRadius+"is"+c.getArea());

}

}

下一篇文章我們會主要做一些編程練習題,希望我們能夠一起鞏固知識,共同學習,一起進步,謝謝。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/397736.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/397736.shtml
英文地址,請注明出處:http://en.pswp.cn/news/397736.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Django拋錯不存在(DoesNotExist)

from django.core.exceptions import ObjectDoesNotExist try:disabledusers.objects.get(sAMAccountNameliu) except ObjectDoesNotExist:print a except modelname.DoesNotExist:轉載于:https://www.cnblogs.com/dreamer-fish/p/5835465.html

mysql ddl dql_mysql DDL、DML、DCL、DQL區分

mysql [Structure Query Language] 的組成分4個部分:DDL [Data Mefinition Language] 數據定義語言DML [Data Manipulation Language]  數據操縱語言DCL [Data Control Language] 數據控制語言DQL [Data Query Language ] 數據查詢語言1、…

hiho圖的聯通性(自留)

無向圖割邊割點算法 而當(u,v)為樹邊且low[v]>dfn[u]時,表示v節點只能通過該邊(u,v)與u連通,那么(u,v)即為割邊。 1 void dfs(int u) {2 //記錄dfs遍歷次序3 static int counter 0; 4 5 //記錄節點u的子樹數6 int children …

《Git權威指南》筆記2

2019獨角獸企業重金招聘Python工程師標準>>> ###Git克隆 Git使用git clone命令實現版本庫克隆&#xff0c;主要有如下3種用法&#xff1a; 1&#xff09;git clone <repository> <direcctory> 將repository指向的版本庫創建一個克隆島directory目錄。目…

SQL數據庫掛起 SQL數據庫附加報錯 SQL數據庫824錯誤修復

SQL數據庫掛起 SQL數據庫附加報錯 SQL數據庫824錯誤修復 數據類型 MSSQL 2012數據大小 4.5 GB故障檢測 附加數據庫提示824錯誤 一般是由于斷電非法關機導致頁面損壞。客戶要求 恢復數據庫數據 ERP可直接使用。修復結果 文件傳來后 檢測發現頁面沒有及時正常關閉導致SQL認為頁不…

查找算法

a. 線性查找&#xff1a;從數據中&#xff0c;第一個元素開始查找&#xff0c;將其與查找的值進行比對&#xff0c;如果相同&#xff0c;就停止查找&#xff0c;如果不相同&#xff0c;則繼續下一個元素的比對。直到查找到匹配的值&#xff0c;或者是有數據遍歷完畢&#xff0c…

mysql測試數據圖表_mysql測試數據表

1.截取至后盾人用于mysql數據測試請在navicat中執行一下命令生成測試數據表/*Navicat Premium Data TransferSource Server : 我的本地連接Source Server Type : MySQLSource Server Version : 50726Source Host : localhost:3306Source Schema : laravelTarget Server Type : …

常用歸檔壓縮命令

1. 打包tar打包表示把一堆文件變成一個tar ####打包工具-f ####指定生成包的名字-c ####創建包-v ####顯示創建過程-t ####查看包中內容-x ####解包-r ####添加文件到包中--delete filename ##刪除包中指定文件--get filename ##取出包中指定文件cffrcvf 等組合使用2. 壓縮…

spring集合的注入

<bean id"date" class"java.util.Date"></bean> <bean id"test" class"test.Test"> <!--注入list-->   <property name"list">     <list>       <value>1</valu…

爬蟲實戰篇---12306搶票爬蟲

&#xff08;1&#xff09;、前言 &#xff08;此代碼經過我的實測具有較強的實用型)每逢佳節&#xff0c;大家對于回家搶票這件事是不是特別頭疼呢&#xff1f;今天我在網上發現了這個代碼&#xff0c;通過一天的學習&#xff0c;與大家分析下&#xff0c;大家可以直接拿來進行…

php和mysql處理樹狀_分級_無限分類_分層數據的方法_PHP和MySQL處理樹狀、分級、無限分類、分層數據的方法...

文章標題中的多個詞語表達的其實是一個意思&#xff0c;就是遞歸分類數據&#xff0c;分級數據非常類似數據結構中的樹狀結構&#xff0c;即每個節點有自己的孩子節點&#xff0c;孩子結點本身也是父親節點。這是一個遞歸、分層形式。可以稱之為樹形層級數據。層級數據結構是編…

LeetCode 70. Climbing Stairs

You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top? 一開始想用排列組合的方式&#xff0c;但是公式不太好些&#xff0c;后來想用遞歸的方式&#x…

04 java 基礎:數據類型

java 數據類型&#xff1a;基本類型與引用類型 基本類型&#xff1a;數值型&#xff0c;其中數值型分為整型、浮點型&#xff0c;整型包括 byte、short 、int、long &#xff0c;默認為 int 類型。浮點類型分為單精度、雙精度&#xff0c;分為 float、double &#xff0c;默認為…

Git 遠程倉庫分支管理

目錄 目錄速查表關聯遠程代碼倉庫克隆遠程倉庫 分支管理創建分支 切換分支合并分支刪除分支解決沖突速查表 指令作用git branch查看分支git branch newBranchName創建分支git checkout branchName切換分支giit checkout -b newBranchName創建切換分支git merge branchName合并分…

call,apply

1.call要逐個傳入參數 2apply方法的必須 function curry(fn){var argsArray.prototype.slice.call(arguments,1);return function(){var innerArgsArray.prototype.slice.call(arguments);var finalArgsargs.concat(innerArgs);console.log(finalArgs);return fn(finalArgs);//…

2018美團CodeM編程大賽 Round A Problem 2 下棋 【貪心】

應該一眼看出來是貪心題&#xff0c;然后想最優解是什么。正確的貪心策略是【原棋盤上每個位置的棋子】都往最近的左邊【目標棋盤上棋子】移動&#xff0c;如果左邊沒有棋子了那就閑置最后處理&#xff0c;如果目標棋盤在該位置上也有棋子&#xff0c;那就算距離為0&#xff08…

idea清理svn信息_IntelliJ IDEA SVN的賬號修改 信息清除

來到編譯器的setting設置 搜索subversion 點擊subversion 找到下面的clear auth...按鈕,點擊一下 就可以了…如果我們不小心輸入svn賬號錯誤的話,后面就一直提示認證失敗,不能checkout代碼. 這個是因為svn把你輸入的賬號進行了緩存. 如果我們想重新輸入新的賬號,必須要清除緩存…

同步手繪板——json

JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。它基于ECMAScript的一個子集。 JSON采用完全獨立于語言的文本格式&#xff0c;但是也使用了類似于C語言家族的習慣&#xff08;包括C、C、C#、Java、JavaScript、Perl、Python等&#xff09;。這些特性使JSON成為…

[HNOI2008]玩具裝箱TOY

洛谷題目連接:[HNOI2008]玩具裝箱TOY 題目描述 P教授要去看奧運&#xff0c;但是他舍不下他的玩具&#xff0c;于是他決定把所有的玩具運到北京。他使用自己的壓縮器進行壓縮&#xff0c;其可以將任意物品變成一堆&#xff0c;再放到一種特殊的一維容器中。P教授有編號為1...N的…

C語言-結構體內存對齊

C語言結構體對齊也是老生常談的話題了。基本上是面試題的必考題。內容雖然很基礎&#xff0c;但一不小心就會弄錯。寫出一個struct&#xff0c;然后sizeof&#xff0c;你會不會經常對結果感到奇怪&#xff1f;sizeof的結果往往都比你聲明的變量總長度要大&#xff0c;這是怎么回…