7.封裝,static,方法重載
阿新 • • 發佈:2019-02-06
對象數組 返回 特點 ring eth pac protect 輸出 args
一.訪問修飾符
1.public:公共的,所有在該項目中都可見
2.protected:受保護的,同包,以及子類不同包可見
3.默認:就是不寫修飾符。同包
4.private:私有,只在同類中
二.封裝
1.定義:將信息和實現的細節封裝到類中,對外只提供方法的訪問
2.作用:隱藏實現細節,可以簡化工作流程。隱藏信息,可以防止數據被隨意修改
3.封裝步驟:
a。將類中的屬性訪問修飾符改為私有的
b。寫一對公共的方法來操作私有的屬性:set/get方法
c。在set或者get方法中加入業務限制來修改屬性
三.static關鍵字
1.定義:靜態關鍵字,可以修飾屬性,方法和代碼塊。
2.作用:是在類被加載時,被靜態修飾的東西都被加載就緒。
靜態屬性和靜態方法可以通過類名直接訪問
3.註意事項:靜態方法不能訪問外部的非靜態成員,靜態方法中不能使用this關鍵字
4.使用場景:常用的工具類方法可以寫成靜態。
四.方法的重載
1.定義:是在同一個類中,出現同名方法,但參數列表必須不同(個數,類型,順序)
2.特點:
必須在同一個類中
參數列表必須不同
與訪問修飾符和返回值無關
五.例子
/* * 1.編寫一個人類,封裝他的性別屬性,要求性別只能賦值為男或女,其他不接受。 編寫測試類,創建該對象給他性別屬性賦值,打印輸出其性別 */ package com.class1103; import java.util.Scanner; public class Class01 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc=new Scanner(System.in); Man m=new Man(); System.out.println("請輸入性別"); m.setSex(sc.next()); System.out.println("性別是"+m.getSex()); System.out.println("請輸入年齡"); m.setAge(sc.nextInt()); System.out.println("年齡是"+m.getAge()); } } class Man{ private String sex; private int age; public void setSex(String sex) { if(sex.equals("男")||sex.equals("女")) { this.sex=sex; }else{ System.out.println("是人妖"); } } public String getSex() { return sex; } public void setAge(int age) { if(age>=1&&age<=150) { this.age=age; }else{ System.out.println("是千年老人妖"); } } public int getAge() { return age; } }
/* * 對象數組 */ package com.class1103; public class Class02 { public static void main(String[] args) { // TODO Auto-generated method stub Student[] stu=new Student[20]; stu[0]=new Student("關羽",58,"男"); stu[1]=new Student("張飛",55,"男"); stu[2]=new Student("趙雲",50,"男"); stu[3]=new Student("黃忠",67,"男"); stu[4]=new Student("馬超",47,"男"); for(int i=0;i<5;i++) { System.out.print(stu[i].name+" "); System.out.print(stu[i].age+" "); System.out.print(stu[i].sex+" "); System.out.println(); } } } class Student{ String name; int age; String sex; public Student(String name,int age,String sex) { this.name=name; this.age=age; this.sex=sex; } }
package com.demo1103; /** * 實現信息的封裝 * @author allen * */ public class Demo1 { private double balance; public void setBalance(double balance){ if(balance<0){ System.out.println("騙子死開"); return; }else{ System.out.println("你就是我親爹啊"); this.balance += balance; } } public double getBalance(){ return balance; } public static void main(String[] args) { Demo1 d = new Demo1(); d.setBalance(-1000); System.out.println("您當前的余額是:"+d.getBalance()); } }
package com.demo1103; import java.util.Arrays; /** * 靜態關鍵字和方法重載案例 * */ public class Test { String name; static int age; static{ System.out.println("我是靜態塊"); } public void test(int a,String b){ System.out.println("你好"); } //重載 private int test(){ return 1; } public static void hello(){ age = 1; System.out.println("hello"); } public static void main(String[] args) { int a = 1; a = 1; Test.hello(); } }
7.封裝,static,方法重載