網站首頁 編程語言 正文
一、兩種編程思想
面向過程編程(Procedure Oriented Programming 簡稱為POP)
????????是一種基本的編程思想,是將一件事情按流程逐步實現。這種思想強調事情完成的過程,分析步驟寫出相應的代碼。
????????如猜拳游戲,每一個步驟都能按順序用代碼描述出來,邏輯清晰。但如果邏輯復雜,如象棋游戲,則無法使用POP的思想實現。
????????C語言就是一門標志性的面向過程編程語言。
面向對象編程思想(Object Oriented Programming 簡稱OOP )
面向對象的三大特性(封裝、繼承、多態)
封裝
繼承
繼承的特點
方法重寫override
重寫要求
重載要求
重載和重寫相關面試題
作業
簡易的商品管理系統
添加商品
刪除商品
修改商品
查看所有
購買商品
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.創建父類對象,調用父類中的無參構造,
//2.調用父類中的fun()方法 new Father();
//1.創建無參的子類對象,先調用父類中的無參構造,
//2.父類中的無參構造調用子類重寫后的fun()方法,
//3.調用子類中的無參構造,調用重寫后的fun()方法 new Son();
}
}
//最終輸出
父類中的普通方法
子類中的普通方法
子類中的普通方法
多態
實現多態特性的前提
//Father類是Son類的父類
//原本應該是Father類的對象保存到f中,但這里用子類對象也可以
Father f = new Son();
總結
多態案例--"花木蘭替父從軍"
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) {
//原本是直接創建對象,調用方法
/*Soldier father = new Soldier("花爸爸");
*father.war();
*/
//突發情況:不能創建父類對象了
//創建一個子類對象
// Woman hml = new Woman("花木蘭");
//將子類對象保存到父類變量中
// Soldier soldier =hml;
Soldier soldier=new Woman("花木蘭");
//這時調用的war()方法是子類重寫后的方法
soldier.war();
//這里無法調用子類中父類里沒有的方法
抽象abstract
是一個修飾符,用于修飾方法或類。
抽象類的特點
接口interface
interface定義。
定義接口
二、類和對象
類Class
定義類[ 修飾符 ] class 類名 {// 屬性 ( 變量 )// 行為 ( 方法 )}
對象Object
類和對象的關系
簡述成員變量和局部變量的區別以及生命周期
成員變量定義在類中,有默認值
三、方法
概念
方法可以理解為一段獨立的代碼,能完成一件事,可以被重復調用。方法可以減少重復的代碼。
調用方法
1、通過:“.”調用
Random rd = new Random();
//通過對象調用方法
rd.nextInt();
2、通過類名調用
/*
*math類*/
public class Test2 {
public static void main(String[] args) {
//Math類的使用
//Math類是一個數學工具類,其中包含了很多數學相關常量和運算的方法
//Math類中的方法都是靜態方法,調用時,直接通過類名調用
//求絕對值
int i = Math.abs(-5);
System.out.println(i);
//求最大最小值
System.out.println(Math.max(1, -5));
????????}
}
?3、通過對象調用
Random rd = new Random();
int rdNum=rd.nextInt();
Scanner sc = new Scanner(System.in);
int inp=sc.nextInt();
?自定義方法
?其中返回值、方法名和參數列表是組成方法的三要素。
返回值可以是任意數據類型(原始類型/引用類型)
參數列表只需寫參數類型和參數名,多個參數用逗號隔開
訪問修飾符可以不寫
方法的分類
無參數無返回值的方法
void fun1(){
System.out.println("hello");
}
有參數無返回值的方法
void fun2(String name){
System.out.println("你好"+name);
}
無參數有返回值的方法
int fun3(){
return 2002;
}
構造方法
概念
特點
繼承時的特點
四、包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當做構造方法使用
public class Father{
//任何類都隱藏有這段代碼
public Father(){
}
}
public class Son extends Father{
//對于每個使用了extends關鍵字的類來說,都隱藏有這段代碼
public Son(){
//調用父類中無參數的構造方法
super();
}
}
//以上代碼可以看出,在創建子類對象時,會自動執行父類的構造方法。
super當做對象使用
原文鏈接:https://blog.csdn.net/m0_72954164/article/details/125981754
- 上一篇:Python程序元素分析和注意事項
- 下一篇:通過驅動修改USB轉串口設備的友好名稱
相關推薦
- 2022-05-14 Centos8安裝docker報錯(錯誤提示:All?mirrors?were?tried)的問題_
- 2022-09-22 IO流技術中的File類
- 2022-08-31 Android無障礙監聽通知的實戰過程_Android
- 2022-04-10 C#實現計算器功能_C#教程
- 2022-04-20 Python設計模式行為型責任鏈模式_python
- 2022-05-20 Idea搭建一個簡單的SpringBoot項目
- 2022-11-21 Redis不同數據類型的命令語句詳解_Redis
- 2022-05-03 python單例模式之selenium?driver實現單例_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支