1. 程式人生 > >實訓09.11:java重點內容介紹

實訓09.11:java重點內容介紹

package test;

/*
 * 
 * OP:面向物件的簡稱
 *  類:同一特徵的屬性
 * 
 * 類的定義:具有相同特徵和行為的事物的抽象。(不具體化)
 * 物件(例項物件):具體真實存在的例項。
 * 類是物件的例項:
 * 
 * Java中的類主要分為:系統類和自定義類!!!
 * 例如:String Array(陣列)  Random(隨機數) Scanner(格式化輸入)等,都是系統類
 * 面向過程:重點在於如何實現此功能:
 * 面向物件:重點能實現此功能的物件如何建立!
 * 面向物件的優勢:在面嚮物件語言中,系統類會為大家提供許多在內部封裝好的功能方法,我們至於要建立物件,並且使用方法即可,無需追究方法內部的實現過程步驟!!
 * 
 * 
 * public 可見度(三種)。public是公開的任意訪問的!
 *但是不符合面嚮物件語言的封裝特性
 *  面向物件的三大特性:封裝 繼承  多型
 * 
 * protected(繼承)  受保護狀態,也是預設狀態!本類及其子類可以訪問,還有和本類同一個package包檔案也可以訪問!所以安全係數依然不高!
 * 
 * private(封裝) 私有的,僅僅本類可以訪問,但是不符合繼承特性!
 * 所以最常見的就是protected和private根據需求,結合使用!
 * 
 * 
 * 
 * 
 * 
 * class   是建立類的標識
 * person  類名,我們要求類名的首字母大寫!!
 * 
 * 
 * */
public class Person { // 類是具體相同特徵和行為的事物的抽象!所以! // 建立類的第一步:特徵(也叫作屬性) //(受保護)(預設狀態)同包可以訪問、自己、自己的子類 protected String name; public String sex; //只能在本類中才能訪問 private int age; //預設狀態為protected受保護狀態 String address; // 建立類的第二步:行為(也叫作方法) /* *public 返回值型別 方法名(引數列表){ } * 如果需要返回值 寫對應型別即可! * 如果不需要返回值,直接寫void代表返回值為空!! * 引數列表:引數個數不限,可有可無 按要求定義!! */
public void eat() { System.out.println("吃飯!!"); } public void sleep() { System.out.println("睡覺!!"); } // 程式只走main函式! } package test; public class Main { public static void main(String[] args) { //Person的用法,同Random類似 Person p1 = new
Person(); //呼叫方法 p1.eat(); p1.sleep(); //給屬性賦值 p1.name = "王二狗子"; // p1.age = 18; p1.sex = "boy"; p1.address = "氪星"; //取值 System.out.println(p1.name + " " + p1.sex); Person p2 = new Person(); p2.name = "李易峰"; p2.sex = "boy"; p2.address = "中國"; System.out.println(p2.name + " " + p2.sex + p2.address); System.out.println(); } } package com; import test.Person; public class SQ { public static void main(String[] args) { /* Person p1 = new Person(); //sex為public p1.sex = "男"; //name為protected p1.name = "hjianmaju"; //protected預設的 p1.address = "zasd"; //age為private p1.age = 19; */ } }
package test;
/*屬性如何賦值*/
public class Dog {

    //建立4個屬性,全部私有化
    private String type;
    private String name;
    private String color;
    private int age;

    //stter方法-----賦值方法
    //this關鍵字,指代呼叫此方法的物件!!!誰呼叫this就是誰!
    /*
     * aType的位置是形參,即形式的引數,沒有具體的值,起佔位作用:告訴使用者,此位置需要賦一個XX型別的值
     * 
     * */
    public void  setType(String aType) {
        this.type =aType;//將形參接收到的值,賦值給屬性!因為屬性私有無法外部訪問!
    } 

    public void setName(String aName) {
        this.name = aName;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void dogInfo() {
        System.out.println(type + " " + name +  " " + age + " " + color);
    }
    //-------------------------------------------------------
    //取值方法  getter
    //String 是方法返回值的型別!
    //在哪呼叫此方法,返回值就返回在那個位置

    public String getName() {
        return name;
    }

    public String gettype() {
        return type;
    }

    public int age() {
        return age;
    }

    public String getColor() {
        return color;
    }
    //在Dog類中定義的方法,僅限於Dog型別的物件來呼叫!
    //誰開發誰使用!!!

//-------------------------------------------------------------------


    //構造方法(又叫:初始化賦值方法):----------  一次性給多個屬性賦值!

    //系統預設的格式
    public  Dog() {     //無參構造

    }

    //public 類名 (引數列表)
    public Dog (String type,String name,String color,int age) {     //有參構造
        this.name = name;
        this.type = type;
        this.color = color;
        this.age = age;

    }
    //方法名一致,但是引數列表不一樣!這就是方法的過載
}






package test;

import java.util.Random;

public class Main {

    public static void main(String[] args) {
        // Person的用法,同Random類似
        Person p1 = new Person();

        // 呼叫方法
        p1.eat();
        p1.sleep();

        // 給屬性賦值
        p1.name = "王二狗子";
//      p1.age = 18;
        p1.sex = "boy";
        p1.address = "氪星";

        // 取值
        System.out.println(p1.name + "  " + p1.sex);

        Person p2 = new Person();
        p2.name = "李易峰";
        p2.sex = "boy";
        p2.address = "中國";
        System.out.println(p2.name + "  " + p2.sex + "  " +p2.address);
        System.out.println();
//------------------------------------------------
        Random r = new Random();//一旦建立物件,就會呼叫構造方法!

        Dog dog1 = new Dog("歡歡","金毛","白色",2);//有參構造

        // dog1.name = "小強";name屬性在Dog類裡面已經定義為私有屬性 其他類 不可訪問

        Dog dog2 = new Dog();//無參構造



        // 使用setter方法間接賦值

        //方法的呼叫!此方法中傳遞的值叫做實參,也就是實際上的真實需要操作的引數值!!
        //實參會把值傳給形參! 並且是單向傳遞不可逆轉!
        dog1.setType("哈士奇");
        dog1.setName("小黃");
        dog1.setAge(3);
        dog1.setColor("黑白色兒");
        dog1.dogInfo();
        //setXxx方法是賦值操作

        System.out.println(dog1.getName());
        //getXxx方法是呼叫取值



    }

}






package test;

/*
 * 
 * OP:面向物件的簡稱
 *  類:同一特徵的屬性
 * 
 * 類的定義:具有相同特徵和行為的事物的抽象。(不具體化)
 * 物件(例項物件):具體真實存在的例項。
 * 類是物件的例項:
 * 
 * Java中的類主要分為:系統類和自定義類!!!
 * 例如:String Array(陣列)  Random(隨機數) Scanner(格式化輸入)等,都是系統類
 * 面向過程:重點在於如何實現此功能:
 * 面向物件:重點能實現此功能的物件如何建立!
 * 面向物件的優勢:在面嚮物件語言中,系統類會為大家提供許多在內部封裝好的功能方法,我們至於要建立物件,並且使用方法即可,無需追究方法內部的實現過程步驟!!
 * 
 * 
 * public 可見度(三種)。public是公開的任意訪問的!
 *但是不符合面嚮物件語言的封裝特性
 *  面向物件的三大特性:封裝 繼承  多型
 * 
 * protected(繼承)  受保護狀態,也是預設狀態!本類及其子類可以訪問,還有和本類同一個package包檔案也可以訪問!所以安全係數依然不高!
 * 
 * private(封裝) 私有的,僅僅本類可以訪問,但是不符合繼承特性!
 * 所以最常見的就是protected和private根據需求,結合使用!
 * 
 * 
 * 
 * 
 * 
 * class   是建立類的標識
 * person  類名,我們要求類名的首字母大寫!!
 * 
 * 
 * */

public class Person {
    // 類是具體相同特徵和行為的事物的抽象!所以!
    // 建立類的第一步:特徵(也叫作屬性)


public String name;
public String sex;
public int age;
public String address;

    // 建立類的第二步:行為(也叫作方法)

    /*
    *public 返回值型別 方法名(引數列表){    }  
     * 如果需要返回值 寫對應型別即可!
     * 如果不需要返回值,直接寫void代表返回值為空!!
     * 引數列表:引數個數不限,可有可無 按要求定義!!
     */
    public void eat() {
        System.out.println("吃飯!!");
    }

    public void sleep() {
        System.out.println("睡覺!!");
    }
    // 程式只走main函式!

}