Java面向對象(三)

??? 一、封裝:

一般意義的封裝:把一段重復代碼抽取成一個函數,稱為代碼的封裝(包裝)面向對象語言的封裝:將類的某些信息隱藏在類的內部(通過使用不同的訪問權限修飾符),不許外部程序直接訪問
而是通過該類提供的方法來實現對隱藏信息的操作和訪問封裝案例1:將成員變量私有化封裝案例2:將成員方法私有化
java固定模式:解決某種問題的固定方式(算法)單例模式:讓一個類在一個程序中只能創建一個對象(window_TestWindow)將類的構造方法私有化,外界不可以隨便調用,向外界提供一個方法去構建在類中new一個static的自己,保證在類生成時,就生成了唯一的對象補充變量的分類:1、數據類型:基本數據類型、引用數據類型2、按照位置分:成員變量:在定義類中,可以使用權限修飾符修飾;在構造方法中進行自動賦值;生命周期不同:靜態(隨著類的加載而生成,類的銷毀而銷毀)非靜態(隨著對象的創建,銷毀而創建銷毀)存儲位置:靜態:方法區非靜態:堆局部變量:在定義方法中,不能使用權限修飾符修飾必須自己進行初始化生命周期:隨著方法調用而生成,方法調用結束而結束存儲位置:棧

例:

package com.wbc.opp.oop.day3.packAge;public class Person {private String name;//私人權限private int age;//私人權限//定義公共的成員方法,可以在此類方法中加入控制語句// 外界通過調用方法來訪問成員變量public Person(){}//通過構造方法public Person(String name,int age){this.name=name;this.age=age;}public void setName(String name){if(name.length()>2&&name.length()<6){this.name=name;}}public String getName(){return name;}public void setAge(int age){if(age<150&&age>0){this.age=age;}}public int getAge(){return this.age;}
}

package com.wbc.opp.oop.day3.packAge;public class TestPerson {public static void main(String[] args) {Person p1=new Person();/*String name;在其他類中可以直接對類中的屬性進行賦值操作,但沒法控制其賦值的內容p1.name="sdadsa";*/p1.setName("abac");String p1Name= p1.getName();System.out.println(p1Name);p1.setAge(2);int p1Age=p1.getAge();System.out.println(p1Age);}
}

二、繼承

繼承就是將同一類事物中的共性進行抽取,定義在一個類中(基類)
其他類可以繼承基類,就能擁有基類中的功能,實現代碼的復用類
以及可以在子類中擴展屬于子類自己的功能而不影響其他類例:貓狗都是動物,所以可以抽取一個動物類,以繼承功能優點:提高了代碼的重復率,減少了冗余。子類使用extends關鍵字繼承父類
一個類只能繼承一個類,但可以多層繼承(繼承體系)Object是所有類的父類,是java類體系中最頂尖的類
當一個類沒有顯示繼承,默認繼承Objectdog繼承Animal,Dog稱為子類,派生類;Animal成為父類方法覆蓋:可能有些功能比較籠統或者與具體有差距,需要更加細致的功能。所以出現了方法的覆蓋當父類中方法的實現不能滿足子類需求是,可以在子類中對父類的方法進行覆蓋要求:子類重寫的方法結構與父類方法結構一致(權限大于等于父類權限;返回值,名字,參數必須一致)父類的私有方法不能重寫,挎包的默認權限方法不能重寫子類拋出的異常不能大于父類的異常
@Override//注解標簽。表示此方法是從父類重寫來的,檢查重寫是不是正確
可以不用添加,只需要重寫正確即可,但建議保留(編譯器可以進行語法驗證;增加可讀性)super關鍵字:當覆寫后子類需要調用父類的方法,可以用super關鍵字調用
例如
@Overridepublic void sleep() {super.sleep();//使用super調用父類方法System.out.println("哮天犬不需要睡覺");}
super不僅可以調用父類,還可以調用父類的父類
super與this相似,this表示當前的對象,super代表父類的內存空間的標識
this在用的時候需要創建本類對象,但super沒有創建父類對象,只是將父類的信息存入子類繼承中的構造方法:在子類繼承父類時不會繼承構造方法,只能通過super構造在子類的構造方法首行調用父類的構造方法-> super(無參調無參,有參調有參);不寫會默認無參構造(super();)常見錯誤:默認無參構造時,父類需要有無參構造方法

例:

Animal是父類

package com.wbc.opp.oop.day3.inherit;public class Animal {private String breed;//品種private String name;private int age;private String gender;public String getBreed() {return breed;}public void setBreed(String breed) {this.breed = breed;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public void printInfo(){System.out.println("姓名:"+name);System.out.println("品種:"+breed);System.out.println("性別:"+gender);System.out.println("年齡"+age);}public Animal() {}public Animal(String name, int age, String gender,String breed) {this.name = name;this.age = age;this.gender = gender;this.breed=breed;}public void sleep(){System.out.println(breed+":"+name+"正在睡覺");}public void eat(String food){System.out.println(breed+":"+name+"正在吃"+food);}
}

cat是子類之一??

package com.wbc.opp.oop.day3.inherit;public class Cat extends Animal{public void catchMice(){System.out.println(getName()+":正在抓老鼠");}
}
package com.wbc.opp.oop.day3.inherit;public class TestCat {public static void main(String[] args) {Cat cat=new Cat();cat.setName("Tom");cat.setBreed("抓老鼠的貓");cat.setGender("公");cat.setAge(6);cat.catchMice();cat.printInfo();}
}

dog是另一子類?

package com.wbc.opp.oop.day3.inherit;public class Dog extends Animal {public void lookHouse(){System.out.println(getName()+":正在看家");}@Override//注解標簽。表示此方法是從父類重寫來的,檢查重寫是不是正確public void sleep(){System.out.println("狗在睡覺");}
}
package com.wbc.opp.oop.day3.inherit;public class TestDog {public static void main(String[] args) {Dog dog=new Dog();dog.setName("viky");dog.setBreed("泰迪");dog.setGender("母");dog.setAge(6);dog.lookHouse();dog.printInfo();dog.eat("狗糧");}
}

哮天犬又是dog的子類

package com.wbc.opp.oop.day3.inherit;public class Xtd extends Dog{public void fly(){System.out.println("哮天犬可以飛");}//可以左鍵快速重寫@Overridepublic void sleep() {super.sleep();//使用super調用父類方法System.out.println("哮天犬不需要睡覺");}}
package com.wbc.opp.oop.day3.inherit;public class TestXtq {public static void main(String[] args) {Xtd xtd=new Xtd();xtd.setName("哮天犬");}
}

三、抽象類

抽象方法:只有方法聲明,沒有具體實現的方法
why要有抽象方法:在一些體系結構的頂端類中,有些功能沒必要實現因為在不同子類中的實現都不相同,這時候就可以將方法聲明為抽線方法public abstract void eat(); //定義為抽象方法,沒有具體實現,不完整此時需要將類定義成抽象類public abstract class Animal {//將類使用abstract抽象化使用abstract關鍵字修飾的類就是抽象類。若一個類中有抽象方法,則其必須是抽象類。但抽象類中也可以有非抽象方法
抽象類:一個類中有不完整的方法,則這個類是抽象類特點:除了其不可構造對象外,其他功能與其他正常的類都相同,可以有變量,方法,構造器其子類必須重寫其所有抽象方法,或者也定義為抽象類作用:主要在上層定義功能,讓子類繼承實現語法:public abstract class Animal {//將類使用abstract抽象化

例:

父類Animal(抽象類)——》子類 cat(抽象類)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ——》另一子類 dog(非抽象)

package com.wbc.opp.oop.day3.Abstract;public abstract class Animal {//將類使用abstract抽象化private String name;private int age;public abstract void eat(String food); //定義為抽象方法public Animal(){}public Animal(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public void printINfo(){System.out.println(name+"\t"+age);}
}

?

package com.wbc.opp.oop.day3.Abstract;public abstract class cat extends Animal {//定義為抽象類
}
package com.wbc.opp.oop.day3.Abstract;public class Dog extends Animal{public Dog() {}public Dog(String name, int age) {super(name, age);}@Overridepublic void eat(String food) {//重寫實現System.out.println(getName()+"吃"+food);}
}
package com.wbc.opp.oop.day3.Abstract;public class TestDog {public static void main(String[] args) {Dog dog=new Dog();dog.setName("旺財");dog.setAge(10);dog.printINfo();dog.eat("狗糧");}
}

四、練習

1.求學生平均成績 編寫出一個通用的人員類(Person),該類具有姓名(Name)、年齡(Age)、性別(gender)等。 然后對Person類的繼承得到一個學生類(Student), 該類能夠存放學生的5門課的成績(語文,數學,英語,物理,地理),并有一個方法能求出平均成績。 最后在main函數中對Student類的功能進行驗證。

//person類
package com.wbc.opp.oop.homework.day3.gradeAverage;public  class Person {private String Name;private int Age;private String gender;public Person(String name, int age, String gender) {Name = name;Age = age;this.gender = gender;}public Person() {}public String getName() {return Name;}public void setName(String name) {Name = name;}public int getAge() {return Age;}public void setAge(int age) {Age = age;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}}
//student類
package com.wbc.opp.oop.homework.day3.gradeAverage;public class Student extends Person {private double gradeAverage;private double chnAverage;private double mathAverage;private double engAverage;private double phyAverage;private double geoAverage;public Student() {super();}private Student(String name, int age, String gender) {super(name, age, gender);}private void setChnAverage(double chnAverage) {this.chnAverage = chnAverage;}private void setMathAverage(double mathAverage) {this.mathAverage = mathAverage;}private void setEngAverage(double engAverage) {this.engAverage = engAverage;}private void setPhyAverage(double phyAverage) {this.phyAverage = phyAverage;}private void setGeoAverage(double geoAverage) {this.geoAverage = geoAverage;}public void setAllAverage(double chnAverage,double mathAverage,double engAverage,double phyAverage,double geoAverage){setChnAverage(chnAverage);setMathAverage(mathAverage);setEngAverage(engAverage);setPhyAverage(phyAverage);setGeoAverage(geoAverage);}public void printInfo(){System.out.println("語文:"+chnAverage);System.out.println("數學:"+mathAverage);System.out.println("英語:"+engAverage);System.out.println("物理:"+phyAverage);System.out.println("地理:"+geoAverage);}public double grade(){return (chnAverage+mathAverage+engAverage+phyAverage+geoAverage)/5;}
}
//測試類
package com.wbc.opp.oop.homework.day3.gradeAverage;public class TestStudent {public static void main(String[] args) {Student stu=new Student();stu.setAllAverage(1,2,3,4,5);stu.printInfo();System.out.println("平均成績為:"+stu.grade());}
}

?

2.人類設計 定義一個人類,包括屬性:姓名、性別、年齡、國籍;包括方法:吃飯、睡覺,工作。 (1)根據人類,派生一個學生類,增加屬性:學校、學號;重寫工作方法(學生的工作是學習)。 (2)根據人類,派生一個工人類,增加屬性:單位、工齡;重寫工作方法(工人的工作是……自己想吧)。 (3)根據學生類,派生一個學生干部類,增加屬性:職務;增加方法:開會。

//Person類
package com.wbc.opp.oop.homework.day3.human;public abstract class Person {private String name;private String gender;private int age;private String country;public Person() {}public Person(String name, String gender, int age, String country) {this.name = name;this.gender = gender;this.age = age;this.country = country;}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;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getCountry() {return country;}public void setCountry(String country) {this.country = country;}public void setAllInfo(){System.out.println(name);System.out.println(gender);System.out.println(age);System.out.println(country);;}public void eat(){System.out.println(getName()+"吃飯");}public void sleep(){System.out.println(getName()+"睡覺");}public abstract void work();
}
//Student類
package com.wbc.opp.oop.homework.day3.human;public class Student extends Person{private String school;private String stuNums;public Student() {}public Student(String name,String gender,int age,String country,String school,String stuNums) {super(name, gender, age, country);this.school = school;this.stuNums = stuNums;}public String getSchool() {return school;}public void setSchool(String school) {this.school = school;}public String getStuNums() {return stuNums;}public void setStuNums(String stuNums) {this.stuNums = stuNums;}public void getAllInfo(){System.out.println(getName());System.out.println(getGender());System.out.println(getAge());System.out.println(getCountry());System.out.println(school);System.out.println(stuNums);}@Overridepublic void work() {System.out.println(getName()+"學習");}
}
//ITworker類
package com.wbc.opp.oop.homework.day3.human;public class ITworker extends Person{private String unit;private int workAge;public ITworker() {}public ITworker(String name, String gender, int age, String country, String unit, int workAge) {super(name, gender, age, country);this.unit = unit;this.workAge = workAge;}public String getUnit() {return unit;}public void setUnit(String unit) {this.unit = unit;}public int getWorkAge() {return workAge;}public void setWorkAge(int workAge) {this.workAge = workAge;}public void setAllInfo(String unit,int workAge){setUnit(unit);setWorkAge(workAge);}public void getAllInfo(){System.out.println(getName());System.out.println(getGender());System.out.println(getAge());System.out.println(getCountry());System.out.println(unit);System.out.println(workAge);}@Overridepublic void work() {System.out.println(getName()+"正在賽博板磚");}
}
//Stucadre學生干部類
package com.wbc.opp.oop.homework.day3.human;public class StuCadre extends Student{private String post;public StuCadre() {}public StuCadre(String name, String gender, int age, String country, String school, String stuNums, String post) {super(name, gender, age, country, school, stuNums);this.post = post;}public void getAllInfo(){System.out.println(getName());System.out.println(getGender());System.out.println(getAge());System.out.println(getCountry());System.out.println(getSchool());System.out.println(getStuNums());System.out.println(post);}public void meeting(){System.out.println(post+getName()+"正在開會");}
}
//test類
package com.wbc.opp.oop.homework.day3.human;public class Test {public static void main(String[] args) {Student stu =new Student("wang","男",20,"中國","snut","0001");stu.work();stu.eat();stu.sleep();stu.getAllInfo();ITworker worker =new ITworker("wang","男",20,"中國","非凡",1);worker.work();worker.getAllInfo();StuCadre cadre=new StuCadre("wang","男",20,"中國","snut","0001","學生會主席");cadre.work();cadre.getAllInfo();cadre.meeting();}
}

3、定義一個人類 , 包含一個country屬性,speak(),eat()方法 派生一個中國人和美國人類, 兩種人說話方式語言不同, 兩種人吃飯方式不同

//person類
package com.wbc.opp.oop.homework.day3.personCountry;public abstract class Person {private String country;public Person(String country) {this.country = country;}public Person() {}public String getCountry() {return country;}public void setCountry(String country) {this.country = country;}public abstract void speak();public abstract void eat();
}
//Chinese類
package com.wbc.opp.oop.homework.day3.personCountry;public class Chinese extends Person{public Chinese(String country) {super(country);}@Overridepublic void speak() {System.out.println(getCountry()+"人說中文");}@Overridepublic void eat() {System.out.println(getCountry()+"人吃中餐");}
}
//American類
package com.wbc.opp.oop.homework.day3.personCountry;public class American extends Person{public American(String country) {super(country);}@Overridepublic void speak() {System.out.println(getCountry()+"人說鳥語");}@Overridepublic void eat() {System.out.println(getCountry()+"人吃西餐");}
}
//test類
package com.wbc.opp.oop.homework.day3.personCountry;public class Test {public static void main(String[] args) {Chinese chinese=new Chinese("中國");chinese.eat();chinese.speak();American american=new American("美國");american.eat();american.speak();}
}

4.學生信息管理系統 設計一個學生信息管理系統,有添加學生,查詢學生,刪除學生等功能. 要求:1.設計一個類學生類,學生屬性有學號,姓名,性別(屬性私有權限) 用來存儲學生的信息 要求2:實現對學生信息的增刪查操作 要求3:使用一個數組存儲學生信息,數組上限定為30即可.

啟動程序后輸出一個菜單讓用戶選擇操作:1.添加學生,2-刪除學生,3.查詢學生,4-退出
選擇添加學生在控制臺依次輸入學號,姓名,性別等信息,將學生信息存儲到一個學生對象中,
并將學生對象存儲到數組中,數組容量定為30.
刪除時,必須輸入學號,如果學號對應的學生存在,從數組中刪除該學生信息
點擊查詢時,必須輸入學號,如果學號對應的學生存在,輸出學生信息即可,不存在,輸出學號有誤

//Student類
package com.wbc.opp.oop.homework.day3.studentInformationManagementSystem;/*學生類,主要作用,存儲學生信息*/
public class Student {private int num;private String name;private String gender;public int getNum() {return num;}public void setNum(int num) {this.num = num;}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;}@Overridepublic String toString() {return "Student{" +"num=" + num +", name='" + name + '\'' +", gender='" + gender + '\'' +'}';}
}
//StudentManage類
package com.wbc.opp.oop.homework.day3.studentInformationManagementSystem;import java.util.Scanner;/*學生信息管理類在此類中,可以有添加,刪除,查詢學生信息等功能*/
public class StudentManage {Student[] students = new Student[30];//[null,null,null]static int count=0;/*管理系統主方法*/public void menu(){loop:while(true){System.out.println("用戶選擇操作: 1.添加學生,2-刪除學生,3.查詢學生,4-退出");Scanner s = new Scanner(System.in);int item = s.nextInt();switch (item){case 1: this.add(); break;case 2: this.delete(); break;case 3: this.search(); break;case 4:  break loop;}}}/*添加
*/public void add() {Student stu = new Student();Scanner name = new Scanner(System.in);System.out.println("請輸入姓名");String names = name.next();stu.setName(names);Scanner num = new Scanner(System.in);System.out.println("請輸入學號");int nums = num.nextInt();stu.setNum(nums);Scanner gender = new Scanner(System.in);System.out.println("請輸入性別");String genders = gender.next();stu.setGender(genders);for (int i = 0; i < students.length; i++) {if (students[i] == null) {students[i] = stu;count++;break;}}System.out.println("添加成功");}/*刪除*/public void delete() {System.out.println("請輸入學生學號");Scanner num = new Scanner(System.in);int nums = num.nextInt();for (int i = 0; i < students.length; i++) {if (students[i] != null && students[i].getNum() == nums) {for (int j = i; j < students.length - 1; j++) {students[j] = students[j + 1];}count--;System.out.println("刪除成功");return;}}System.out.println("查無此人");}/*查詢*/public void search() {System.out.println("請輸入學生學號");Scanner num = new Scanner(System.in);int nums = num.nextInt();for (int i = 0; i < students.length; i++) {if (students[i] != null && students[i].getNum() == nums) {System.out.println(students[i].toString());return;}}System.out.println("查無此人");}}
//RunStudentManage類
package com.wbc.opp.oop.homework.day3.studentInformationManagementSystem;/*啟動類*/
public class RunStudentManage {public static void main(String[] args) {/*創建一個學生信息管理系統對象*/StudentManage studentManager = new StudentManage();studentManager.menu();}
}

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

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

相關文章

C++ Primer 筆記(總結,摘要,概括)——第3章 字符串、向量和數組

目錄 3.1 命名空間的using聲明 3.2 標準庫類型string 3.2.1 定義和初始化string對象 3.2.2 string對象上的操作 3.2.3 處理string對象中的字符 3.3 標準庫類型vector 3.3.1 定義和初始化vector對象 3.3.2 向vector對象中添加元素 3.3.3 其他vector操作 3.4 迭代器介紹 3.4.…

如何使用rocketmq實現分布式事務?

什么是rocketmq事務消息 事務消息是 Apache RocketMQ 提供的一種高級消息類型&#xff0c;支持在分布式場景下保障消息生產和本地事務的最終一致性。 RocketMQ的分布式事務又稱為“半消息事務”。 事務消息處理流程 RocketMQ是靠半消息機制實現分布式事務 事務消息&#x…

Spring之AOP源碼解析(上)

Aop相關注解 EnableTransactionManagementEnableAspectJAutoProxyEnableAsync... 從注解切入來看看這些注解都干了什么 Import注解作用簡述 注入的類一般繼承ImportSelector或者ImportBeanDefinitionRegistrar接口 繼承ImportSelector接口&#xff1a;selectImports方法返回…

pandas/geopandas 筆記:判斷地點在不在路網上 不在路網的點和路網的距離

0 導入庫 import osimport pandas as pd pd.set_option(display.max_rows,5)import osmnx as oximport geopandas as gpd from shapely.geometry import Point 1 讀取數據 假設我們有 如下的數據&#xff1a; 1.1 新加坡室外基站位置數據 cell_stationpd.read_csv(outdoor…

TSINGSEE青犀AI智能分析網關V4初始配置與算法相關配置介紹

TSINGSEE青犀AI智能分析網關V4內置了近40種AI算法模型&#xff0c;支持對接入的視頻圖像進行人、車、物、行為等實時檢測分析&#xff0c;上報識別結果&#xff0c;并能進行語音告警播放。硬件管理平臺支持RTSP、GB28181協議、以及廠家私有協議接入&#xff0c;可兼容市面上常見…

通過例子學習golang的Goroutine

Go 語言中的 Goroutine 是一種輕量級的并發執行單位。它可以與其他 Goroutine 并發地執行&#xff0c;而不需要顯式地管理線程的創建和銷毀。Goroutine 是 Go 語言并發模型的核心組成部分&#xff0c;它使得編寫并發程序變得更加簡單和高效。 例一 創建兩個function&#xff0…

linux下ffmpeg調用GPU硬件解碼(VDPAU/VAAPI)保存文件

本文講解在linux下面&#xff0c;如何通過ffmpeg調用GPU硬件解碼&#xff0c;并保存解碼完的yuv文件。 其實&#xff0c;ffmpeg自帶的例子hw_decode.c這個文件&#xff0c;就已經能滿足要求了&#xff0c;因此&#xff0c;本文就嘗試講解以下hw_decode這個例子。hw_decode.c可以…

watchpoint

前言 內存被踩&#xff0c;通過 watchpoint 找到真兇 實例 以 smsc911x 網卡驅動為基體&#xff0c;進行實驗&#xff0c;和網卡本身功能無關&#xff0c; 每執行一次 ifconfig eth0 up&#xff0c;就會調用一次 smsc911x_open()&#xff0c;我在這里設計了一段代碼&#xf…

數學知識(四)(容斥原理、博弈論)

一、容斥原理 容斥原理公式 一共加或者減的式子個數 &#xff08;一&#xff09;利用容斥原理解決求能被質數整除的數的個數 890計算能被整除的數的個數 因為一共有2^n-1種選法&#xff0c;可以用位運算的方式枚舉&#xff0c;對于得到的每一種選法&#xff0c;根據存在的數…

六、回歸與聚類算法 - 邏輯回歸與二分類

線性回歸欠擬合與過擬合線性回歸的改進 - 嶺回歸分類算法&#xff1a;邏輯回歸模型保存與加載無監督學習&#xff1a;K-means算法 1、應用場景 2、原理 2.1 輸入 2.2 激活函數 3、損失以及優化 3.1 損失 3.2 優化 4、邏輯回歸API 5、分類的評估方法 5.1 精確率和召回率 5.2…

找出作弊的人

文章目錄 題目描述輸入描述輸出描述樣例1解釋:樣例2代碼 題目描述 公司組織了一次考試,現在考試結果出來了&#xff0c;想看一下有沒人存在作弊行為,但是員工太多了,需要先對員工進行一次過濾,再進一步確定是否存在作弊行為。 過濾的規則為:找到分差最小的員工ID對(p1,p2)列表…

【Spring】IoC容器 控制反轉 與 DI依賴注入 配置類實現版本 第四期

文章目錄 基于 配置類 方式管理 Bean一、 配置類和掃描注解二、Bean定義組件三、高級特性&#xff1a;Bean注解細節四、高級特性&#xff1a;Import擴展五、基于注解配置類方式整合三層架構組件總結 基于 配置類 方式管理 Bean Spring 完全注解配置&#xff08;Fully Annotatio…

Kotlin學習 6

1.接口 interface Movable {var maxSpeed: Intvar wheels: Intfun move(movable: Movable): String}class Car(var name: String, override var wheels: Int 4, _maxSpeed: Int) : Movable {override var maxSpeed: Int _maxSpeedget() fieldset(value) {field value}overr…

C語言讀取 ini 配置文件,修改/添加鍵值對

C語言讀取 ini 配置文件&#xff0c;修改/添加鍵值對 C語言讀取 ini 配置文件&#xff0c;對section中的鍵值對進行修改/添加&#xff0c;如果section不存在&#xff0c;則在末尾將新的section/key/value 添加進去。 一、了解什么是INI文件&#xff1f; ini 文件是Initializ…

【大數據】Flink 之部署篇

Flink 之部署篇 1.概述和參考架構2.可重復的資源清理3.部署模式3.1 Application 模式3.2 Per-Job 模式&#xff08;已廢棄&#xff09;3.3 Session 模式 Flink 是一個多用途框架&#xff0c;支持多種不同的混合部署方案。下面&#xff0c;我們將簡要介紹 Flink 集群的構建模塊、…

流動資金貸款管理辦法

流動資金貸款管理辦法 (2024年1月30日國家金融監督管理總局令2024年第2號公布 自2024年7月1日起施行) 第一章 總 則 第一條 為規范銀行業金融機構流動資金貸款業務經營行為&#xff0c;加強流動資金貸款審慎經營管理&#xff0c;促進流動資金貸款業務健康發展&#xff0c;依…

【html學習筆記】3.表單元素

1.文本框 1.1 語法 <input type "text">表示文本框。且只能寫一行 1.2 屬性 使用屬性size 設置文本框大小 <input type"text" size"10">2. 使用屬性value 來設置文本框的默認文字 <input type"text" size"…

Vue狀態管理庫-Pinia

一、Pinia是什么&#xff1f; Pinia 是 Vue 的專屬狀態管理庫&#xff0c;它允許支持跨組件或頁面共享狀態&#xff0c;即共享數據&#xff0c;他的初始設計目的是設計一個支持組合式API的 Vue 狀態管理庫&#xff08;因為vue3一個很大的改變就是組合式API&#xff09;,當然這…

PFA三角燒瓶實驗室PFA錐形瓶本底純凈耐腐蝕性強

PFA三角燒瓶外觀呈平底圓錐狀&#xff0c;下闊上狹&#xff0c;有一圓柱形頸部&#xff0c;上方有一較頸部闊的開口&#xff0c;可用塞子封閉。PFA三角燒瓶也稱PFA錐形瓶&#xff0c;PFA反應瓶&#xff0c;PFA三角燒瓶、PFA依氏燒瓶、PFA錐形燒瓶&#xff0c;PFA鄂倫麥爾瓶等。…

普中51單片機學習(串口通信)

串口通信 原理 計算機通信是將計算機技術和通信技術的相結合&#xff0c;完成計算機與外部設備或計算機與計算機之間的信息交換 。可以分為兩大類&#xff1a;并行通信與串行通信。并行通信通常是將數據字節的各位用多條數據線同時進行傳送 。控制簡單、傳輸速度快&#xff1…