網(wǎng)站首頁 編程語言 正文
一、兩種編程思想
面向過程編程(Procedure Oriented Programming 簡稱為POP)
????????是一種基本的編程思想,是將一件事情按流程逐步實現(xiàn)。這種思想強調(diào)事情完成的過程,分析步驟寫出相應(yīng)的代碼。
????????如猜拳游戲,每一個步驟都能按順序用代碼描述出來,邏輯清晰。但如果邏輯復雜,如象棋游戲,則無法使用POP的思想實現(xiàn)。
????????C語言就是一門標志性的面向過程編程語言。
面向?qū)ο缶幊趟枷?Object Oriented Programming 簡稱OOP )
面向?qū)ο蟮娜筇匦?/strong>(封裝、繼承、多態(tài))
封裝
繼承
繼承的特點
方法重寫override
重寫要求
重載要求
重載和重寫相關(guān)面試題
作業(yè)
簡易的商品管理系統(tǒng)
添加商品
刪除商品
修改商品
查看所有
購買商品
public class Father{
public Father(){
fun();
}
public void fun(){System.out.println("父類中的普通方法");}
}
public class Son extends Father{
public Son(){
fun();
}
public void fun(){
System.out.println("子類中的普通方法");
} }
public class Test{
public static void main(String[] args){
//1.創(chuàng)建父類對象,調(diào)用父類中的無參構(gòu)造,
//2.調(diào)用父類中的fun()方法 new Father();
//1.創(chuàng)建無參的子類對象,先調(diào)用父類中的無參構(gòu)造,
//2.父類中的無參構(gòu)造調(diào)用子類重寫后的fun()方法,
//3.調(diào)用子類中的無參構(gòu)造,調(diào)用重寫后的fun()方法 new Son();
}
}
//最終輸出
父類中的普通方法
子類中的普通方法
子類中的普通方法
多態(tài)
實現(xiàn)多態(tài)特性的前提
//Father類是Son類的父類
//原本應(yīng)該是Father類的對象保存到f中,但這里用子類對象也可以
Father f = new Son();
總結(jié)
多態(tài)案例--"花木蘭替父從軍"
Woman類
package com.hqyj.test2;
public class Woman extends Soldier {
public Woman(String name) {
super(name); }
/** 定義化妝的方法 * */
public void dressUp() {
System.out.println(getName() + "化妝打扮"); }
/** 重寫父類的方法 * */
@Override public void war() {
System.out.println(getName() + "男扮女裝上陣殺敵");
}
}
package com.hqyj.test2;
public class Soldier {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Soldier(String name) {
this.name = name;
}
public void war() {
System.out.println(name+"上陣殺敵");
}
}
package com.hqyj.test2;
/** 花木蘭替父從軍 ** */
public class Main {
public static void main(String[] args) {
//原本是直接創(chuàng)建對象,調(diào)用方法
/*Soldier father = new Soldier("花爸爸");
*father.war();
*/
//突發(fā)情況:不能創(chuàng)建父類對象了
//創(chuàng)建一個子類對象
// Woman hml = new Woman("花木蘭");
//將子類對象保存到父類變量中
// Soldier soldier =hml;
Soldier soldier=new Woman("花木蘭");
//這時調(diào)用的war()方法是子類重寫后的方法
soldier.war();
//這里無法調(diào)用子類中父類里沒有的方法
抽象abstract
是一個修飾符,用于修飾方法或類。
抽象類的特點
接口interface
interface定義。
定義接口
二、類和對象
類Class
定義類[ 修飾符 ] class 類名 {// 屬性 ( 變量 )// 行為 ( 方法 )}
對象Object
類和對象的關(guān)系
簡述成員變量和局部變量的區(qū)別以及生命周期
成員變量定義在類中,有默認值
三、方法
概念
方法可以理解為一段獨立的代碼,能完成一件事,可以被重復調(diào)用。方法可以減少重復的代碼。
調(diào)用方法
1、通過:“.”調(diào)用
Random rd = new Random();
//通過對象調(diào)用方法
rd.nextInt();
2、通過類名調(diào)用
/*
*math類*/
public class Test2 {
public static void main(String[] args) {
//Math類的使用
//Math類是一個數(shù)學工具類,其中包含了很多數(shù)學相關(guān)常量和運算的方法
//Math類中的方法都是靜態(tài)方法,調(diào)用時,直接通過類名調(diào)用
//求絕對值
int i = Math.abs(-5);
System.out.println(i);
//求最大最小值
System.out.println(Math.max(1, -5));
????????}
}
?3、通過對象調(diào)用
Random rd = new Random();
int rdNum=rd.nextInt();
Scanner sc = new Scanner(System.in);
int inp=sc.nextInt();
?自定義方法
?其中返回值、方法名和參數(shù)列表是組成方法的三要素。
返回值可以是任意數(shù)據(jù)類型(原始類型/引用類型)
參數(shù)列表只需寫參數(shù)類型和參數(shù)名,多個參數(shù)用逗號隔開
訪問修飾符可以不寫
方法的分類
無參數(shù)無返回值的方法
void fun1(){
System.out.println("hello");
}
有參數(shù)無返回值的方法
void fun2(String name){
System.out.println("你好"+name);
}
無參數(shù)有返回值的方法
int fun3(){
return 2002;
}
構(gòu)造方法
概念
特點
繼承時的特點
四、包package
五、this和super
this當做對象使用
public class Person{
private String name;
public void setName(String name){
//這里的this,表示當前類Person的一個對象
//相當于Person p = new Person()后的p。
this.name=name;
}
}
this當做構(gòu)造方法使用
public class Father{
//任何類都隱藏有這段代碼
public Father(){
}
}
public class Son extends Father{
//對于每個使用了extends關(guān)鍵字的類來說,都隱藏有這段代碼
public Son(){
//調(diào)用父類中無參數(shù)的構(gòu)造方法
super();
}
}
//以上代碼可以看出,在創(chuàng)建子類對象時,會自動執(zhí)行父類的構(gòu)造方法。
super當做對象使用
原文鏈接:https://blog.csdn.net/m0_72954164/article/details/125981754
相關(guān)推薦
- 2022-08-02 Go語言kafka生產(chǎn)消費消息實例搬磚_Golang
- 2023-04-10 Pytest斷言的具體使用_python
- 2022-04-22 npm WARN postcss-modules@4.2.2 requires a peer of
- 2022-10-23 C#使用Lazy<T>實現(xiàn)對客戶訂單的延遲加載_C#教程
- 2022-08-31 ASP.NET?Core中的對象池介紹_實用技巧
- 2022-09-03 Golang棧結(jié)構(gòu)和后綴表達式實現(xiàn)計算器示例_Golang
- 2022-05-28 C語言?超詳細講解鏈接器_C 語言
- 2022-09-13 一文帶你了解Go語言中的單元測試_Golang
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支