JAVA自學筆記08

JAVA自學筆記08

1、構造方法私有,外界就不能再創建對象
2、說明書的制作過程
1)寫一個工具類,在同一文件夾下,測試類需要用到工具類,系統將自動編譯工具類;工具類的成員方法一般是靜態的,因此在測試類中可直接通過
工具類名.方法名(參數列表);
的方法來調用
2)加入文檔注釋
@ 文字(作者、版本)
@ param / return
3)用工具解析文檔注釋:javadoc
格式:javadoc -d 目錄名-author-version 工具類名.java
可創建未存在的目錄
3、工具類配合說明書使用
1)找到并打開文檔
2)點擊顯示,找出索引,找出搜索框
3)觀察該類的構造,需不需要導包(java.lang包下的類不需要導入)等等
4)觀察類說明,構造方法及成員方法和版本
成員變量 字段摘要
構造方法 構造方法摘要
成員方法(靜態?返回值類型?) 方法摘要
有構造方法就創建對象;沒有構造方法可能就是靜態的
5)使用

@例題1:觀察JAVA1.7API文檔,學習math類
@例題2:借助Math工具類,編寫猜數字程序

import java.util.Scanner;
public class Guess {public static void main(String[] args) {// TODO 自動生成的方法存根int num = (int)( 100*Math.random()+1);System.out.println(num);int i=5;Scanner sc = new Scanner(System.in);System.out.print("猜數字,范圍在0~100間");String s2 = "大了";String s3 = "小了";String s4 = "猜對了,游戲結束";String s5 = "請輸入數字";int x=sc.nextInt();for(;x!=num&&i>0;i--) {if(x>num) {System.out.println(s2);System.out.println(s5);}if(x<num) {System.out.println(s3);System.out.println(s5);}x=sc.nextInt();}if(x==num) {System.out.println(s4);}else {System.out.println("五次機會用完,游戲結束");}}
}

3、代碼塊
1)用{}括起來的代碼
2)可分為局部代碼塊、靜態代碼塊、同步代碼塊、構造代碼塊
3)局部代碼塊:在方法中出現,用于 限定變量生命周期,及早釋放,提高內存利用率
4)構造代碼塊:在類中方法外(類中的成員位置)出現,多個構造方法中 方法中相同的代碼存放到一起,每次調用構造方法時都執行(但在main方法之后),并且在構造方法前執行,可以把多個構造方法的共同代碼放到一起,用于對對象進行初始化
5)靜態代碼塊:在類中方法外(類中的成員位置)出現,并加上static修飾,即static{…};一般用于給類進行初始化,在加載時就進行,并且只進行一次
執行順序5、4、構造方法,與實際順序無關

4、繼承
1)定義:多個類(子類、派生類)中存在相同屬性和行為時,將這些內容抽取到單獨一個類中,只需繼承那個類(被稱為父類、基類或超類)即可
2)通過extends關鍵字可以實現類與類的繼承
class 子類名 extends 父類名{};
3) 提高代碼的復用性、提高代碼的維護性、使類與類間產生了關系,是多態的前提
4)弊端:類的耦合性增強,我們需要低耦合高內聚
5)特點:①JAVA中只支持單繼承,不支持多繼承,但它支持多層繼承
6)注意事項:
①子類只能繼承父類所有的非私有的成員(方法及變量)
②不要為了部分功能去繼承一個類
③子類不能繼承父類的構造方法,但是可以通過super關鍵字去訪問父類構造方法
7)使用繼承的時機
8)成員變量的關系:
①在子類方法中訪問一個變量的查找順序:首先在子類的局部范圍內查找,有就使用;接著在子類的成員范圍找,有就使用;最后,在父類的成員(變量)內尋找(僅考慮單繼承的情況,其余同理類推)
②this和super的區別
%訪問成員變量:
this/super.成員變量
調用本類的成員變量/調用父類的成員變量
%調用構造方法:
this(…) 調用本類的構造方法
super(…) 調用父類的構造方法
%調用成員方法:
this.成員方法名 調用本類的成員方法
super.成員方法名 調用父類的成員方法
③繼承中構造方法的關系:子類中所有的構造方法默認都會訪問父類的無參構造方法
原因:因為子類會繼承父類中的數據,可能還會使用父類的數據。所以,子類初始化之前一定要先完成父類數據的初始化
子類的每一個構造方法的第一條語句默認為super();
④繼承中構造方法的注意事項:
如果父類中沒有無參構造(即已給有參構造方法)方法,系統調用子類的構造方法將報錯
解決方法:解決方法:在子類構造方法最前面加
super(參數列表);
來調用父類其他的帶參構造方法即可
或者用子類通過this調用本類的其他構造方法來間接調用父類的帶參構造方法
super(…)和this(…)必須放在第一句否則就會出現父類數據多次初始化的情況
⑤一個類的初始化的過程:默認初始化、顯示初始化、構造方法初始化

@例題3:看程序寫結果

class Father{
static{System.out.println("靜態代碼塊Father");
}
{System.out.println("構造代碼塊Father");
}
public Father(){
System.out.println("構造方法Father");
}
}
class Son extends Father{
static{System.out.println("靜態代碼塊Son");
}
{System.out.println("構造代碼塊Son");
}
public Father(){
System.out.println("構造方法Son");
}
}
class Demo{
Son s = new Son();
}

執行結果為:
靜態代碼塊Father
靜態代碼塊Son//加載類時執行
構造代碼塊Father
構造方法Father
構造代碼塊Son
構造方法Son

轉載于:https://www.cnblogs.com/Tanqurey/p/10485326.html

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

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

相關文章

創業,不能兼職

一直在尋找靠譜的技術人才加入自己的創業團隊。這個靠譜&#xff0c;不僅是技術靠譜&#xff0c;還要有相同的價值觀。價值觀的概念也很廣泛&#xff0c;除了人品&#xff0c;還有對一些涉及到做人做事最本質的一些理念要相同。最起碼的一條是&#xff0c;你是不是真的想好了決…

Java 集合系列07之 Stack詳細介紹(源碼解析)和使用示例

轉載 http://www.cnblogs.com/skywang12345/p/3308852.html轉載于:https://www.cnblogs.com/lizhouwei/p/9162251.html

@Controller和@RestController的區別

RestController注解相當于ResponseBody &#xff0b; Controller合在一起的作用。 1)如果只是使用RestController注解Controller&#xff0c;則Controller中的方法無法返回jsp頁面&#xff0c;配置的視圖解析器InternalResourceViewResolver不起作用&#xff0c;返回的內容就是…

spring AOP解說

1.aop切面編程就是在常規的執行java類中方法前或執行后加入自定義的方法。 比如你本來每天都去打醬油&#xff0c;去&#xff0c;打醬油&#xff0c;回。 現在我每天在你打醬油路上等著&#xff0c;你去打醬油的時候我打你一頓&#xff0c;回來的時候給你點糖果吃。 你根本不…

接口 EnvironmentAware

凡是被Spring管理的類&#xff0c;實現接口 EnvironmentAware 重寫方法 setEnvironment 可以在工程啟動時&#xff0c;獲取到系統環境變量和application配置文件中的變量。

簡單安裝ELK分析日志及使用心得

ELK是由Elasticsearch、Logstash、Kibana三個組件組成的。Elasticsearch&#xff1a;是ELK的核心插件&#xff0c;是一個基于Lucene的搜索服務器&#xff0c;它提供一個分布式多用戶能力的全文搜索引擎&#xff0c;能夠達到實時搜索&#xff0c;穩定&#xff0c;可靠&#xff0…

寄生式創業更容易成功

上次參加站長大會見識了不少創業團隊和個人站長&#xff0c;他們中許多人都曾有過或正在過著苦逼的日子&#xff0c;不過我見到更多的還是他們風光的一面&#xff0c;在這次大會我見到了很多成功的創業團隊&#xff0c;例如專門做微博營銷的團隊、依附于QQ空間的團隊、專做騰訊…

JS單引號嵌套的問題,怎么改才能對呢!

JS單引號嵌套的問題&#xff0c;怎么改才能對呢&#xff01; https://zhidao.baidu.com/question/416584343.html document.getElementById(celbid).innerHTML<inputname""type"text"οnblur"celchangeb(celaid,celbid);">;這段代碼是JS顯…

@RequestParam的作用

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 MVC另外一個特性是其提取和解析請求參數的能力。讓我們繼續重構上面的方法&#xff0c;并在其中添加RequestParam注解&#xff1a; Requ…

前端入門教程(七)CSS屬性設置

寬和高 width屬性可以為元素設置寬度。 height屬性可以為元素設置高度。 塊級標簽才能設置寬度&#xff0c;內聯標簽的寬度由內容來決定。 字體屬性 文字字體 font-family可以把多個字體名稱作為一個“回退”系統來保存。如果瀏覽器不支持第一個字體&#xff0c;則會嘗試下一個…

java 深入了解DTO及如何使用DTO

這篇文章主要來談論一下DTO使用的場合及其帶來的好處。首先要理解DTO是什么&#xff1f; DTO就是數據傳輸對象(Data Transfer Object)的縮寫。DTO模式&#xff0c;是指將數據封裝成普通的JavaBeans&#xff0c;在J2EE多個層次之間傳輸。 DTO類似信使&#xff0c;是同步系統中…

圖解CPU發展史

隨著科學技術和人們對物質水平要求的不斷提高&#xff0c;CPU作為電腦的核心組件&#xff0c;也發生了翻天覆地的變化&#xff0c;從1971年只有2300顆晶體管的Intel 4004微處理器到現在的以億為單位的Intel i7處理器&#xff0c;科技發展的步伐從未停止&#xff0c;隨著對原有技…

1031 查驗身份證

題目鏈接&#xff1a;https://pintia.cn/problem-sets/994805260223102976/problems/994805290334011392 題解&#xff1a; 1 #include <iostream>2 #include<cstdio>3 #include<string>4 using namespace std;5 6 int main() {7 int weigth[] { 7,9,10…

漫談程序員系列:一張圖道盡程序員的出路

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 《推背圖》相傳由唐太宗時期的司天監李淳風和袁天罡合著&#xff08;此兩人其實是超級武學高手&#xff0c;參見小椴的《開唐》&#xf…

使用@Order調整配置類加載順序

4.1 Order Spring 4.2 利用Order控制配置類的加載順序 4.2 演示 兩個演示bean package com.wisely.spring4_2.order;public class Demo1Service {}package com.wisely.spring4_2.order;public class Demo2Service {}兩個配置類,注意Order配置加載的順序 package com.wisely.…

[php] 高級教程

include 和 require 語句用于在執行流中插入寫在其他文件中的有用的代碼。 include 和 require 除了處理錯誤的方式不同之外&#xff0c;在其他方面都是相同的&#xff1a; require 生成一個致命錯誤&#xff08;E_COMPILE_ERROR&#xff09;&#xff0c;在錯誤發生后腳本會停止…

常見電腦字符編碼總結

一 、背景知識1、計算機中所有的數據都用01串來表示&#xff0c;至于一串01到底代表什么是由軟件來設定的。比如&#xff1a;01111101111101010111110111110101 可以理解為一條指令&#xff0c;也可以理解為4個字節的char字符&#xff0c;具體是什么要看這個數據是在代碼段還…

jsp+easyui+DataGrid 例子

轉自:https://blog.csdn.net/l3922768721/article/details/51597977 導入js和css <% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8"%> <% taglib uri"http://java.sun.com/jsp/jstl/core"…

@Pointcut的用法

Pointcut 是指那些方法需要被執行"AOP",是由"Pointcut Expression"來描述的.Pointcut可以有下列方式來定義或者通過&& || 和!的方式進行組合. args()args()execution()this()target()target()within()within()annotation其中execution 是用的最多的…

restful風格使用小例

1. 頁面傳參數寫法&#xff1a; http://write.blog.csdn.net/ 參數1 / 參數2 / 參數N restful風格是把參數 直接拼在 / 后面&#xff0c;而不是URL地址重寫方式。 2. 后臺接收用法&#xff1a;