實訓09.11:java重點內容介紹
阿新 • • 發佈:2018-12-09
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函式!
}