javaSE--8[類和物件_3]
阿新 • • 發佈:2020-12-13
類和物件_3
1.什麼是物件?
1.物件是由我們自己建立的類來創建出來的。[沒有類就沒有物件]
2.物件就是類的例項【可以真正使用類的資料,可以呼叫類中元素的資料】
例如:修建大樓是繪製的設計圖紙就是類,根據設計圖紙修建起來的真實的可以住人的大樓就是物件。
3.一個類可以創建出多個物件
類是物件的模板,物件是類的真實表現
2.如何建立物件?
1.保證用來建立物件的類是存在
2.需要通過類中提供的構造方法建立物件
格式:new 構造方法( [引數值] );
public class Person{
public static void main(String args[ ]){
//建立Person類的物件
//格式: new 構造方法([引數值])
//new Person();//Person類的物件
//new Person("javase");
//為了以後方便使用物件,我們就把這個物件儲存在變數
Person per1=new Person();
}
public Person(){
System.out.println("Person類無引數構造方法");
}
public Person(String value){
System.out.println("Person類有引數構造方法,引數是--value==" +value);
}
}
3.建立好的物件的有何作用?
建立好的物件可以訪問/呼叫類中的元素【變數/方法】,至於建立好的物件可以訪問/呼叫類中的那些元素,那些元素不能訪問/呼叫,就得看類中元素的訪問限制修飾符。
4.物件的具體用法
變數的訪問
1.例項變數—【物件.例項變數】
2.靜態成員變數–【物件.靜態成員變數/類名.靜態成員變數】
對變數只存在得到變數的值使用或者是修改變數值這兩種的操作。
以上的訪問是在public修飾符的作用下操作的。
例如:
class Student{
//例項變數
public int stuid=1001;
public int stuage;
//靜態成員變數
public static String stuname="zhangsan";
public static String stuaddress;
}
public class Test2{
public static void main(String args[]){
//訪問例項變數---【物件.例項變數】
//建立Student類的物件
Student stu1=new Student();
System.out.println("stuid=="+stu1.stuid);
//賦值
stu1.stuage=23;
System.out.println("stuage=="+stu1.stuage);
//訪問類變數--【物件.類變數/類名.類變數】
Student stu2=new Student();
System.out.println("stuname=="+stu2.stuname);
System.out.println("stuname=="+Student.stuname);
//stu2.stuaddress="西安";
//System.out.println("stuaddress=="+stu2.stuaddress);
//System.out.println("stuaddress=="+Student.stuaddress);
Student.stuaddress="北京";
System.out.println("stuaddress=="+stu2.stuaddress);
System.out.println("stuaddress=="+Student.stuaddress);
}
}
方法的訪問
1.構造方法—new 構造方法();
2.例項方法–【物件.例項方法】
3.靜態方法–【物件.靜態方法/類名.靜態方法】
以下使用無返回值,無引數的方法為例
例如:
class Dog{
//例項方法
public void dogTest1(){
System.out.println("Dog類中的例項方法");
}
//類方法
public static void dogStatic(){
System.out.println("Dog類中的類方法");
}
}
public class Test3{
public static void main(String args[]){
//例項方法--【物件.例項方法】
Dog dog1=new Dog();
dog1.dogTest1();
//靜態方法--【物件.靜態方法/類名.靜態方法】
Dog dog2=new Dog();
dog2.dogStatic();
Dog.dogStatic();
}
}
有引數的方法訪問,需要注意的是引數的傳遞
例如:
class Cat{
//例項方法
public void catTest1(int age,double height){
System.out.println("Cat類中的例項方法--引數1--age=="+age+",引數2--height=="+height);
}
//類方法
public static void catStatic(Dog dog){
System.out.println("Cat類中的類方法--引數--dog=="+dog);
}
}
class Dog{}
public class Test4{
public static void main(String args[]){
//例項方法--【物件.例項方法】
Cat cat1=new Cat();
cat1.catTest1(5,12.5);
//類方法
Cat.catStatic(new Dog());
//上面的方法在呼叫的時候傳遞的引數是具體的資料值
//我們在訪問訪問的時候可以傳遞儲存資料值的變數
int age=3;
double hei=6.7;
cat1.catTest1(age,hei);
Dog dog=new Dog();
cat1.catStatic(dog);
}
}
總結: 先看【有沒有/有幾個/什麼型別】,再傳【匹配型別/匹配個數/值【變數】】
有返回值的方法訪問,需要注意的是接收方法的返回值結果【型別匹配】
例如:
class Cat{
//例項方法
public int catTest2(int num1,double num2){
int res=0;
res=(int)(num1+num2);
return res;
}
//類方法
public static Student catStatic2(Dog dog){
//return new Student();
Student stu=new Student();
return stu;
}
}
class Dog{}
class Student{
//例項變數
public int stuid=1001;
}
public class Test4{
public static void main(String args[]){
//訪問有返回值和引數的方法
Cat cat2=new Cat();
int val=cat2.catTest2(12,12.5);
System.out.println("catTest2的執行結果=="+val);
Student stu=Cat.catStatic2(new Dog());
System.out.println("catStatic2的執行結果=="+stu.stuid);
}
}
總結:方法的呼叫【1.要什麼,傳什麼;2.給什麼,收什麼】
5.物件的記憶體分配原理
物件是通過類的構造方法建立
類是一種自定義的複合資料型別
6.類與物件的關係
類是建立物件的模板;物件是類的具體表現