面向對象概念
面向對象:把事情交給對象完成
面向過程:自己完成所有事情
類
模版:描述具有共性的一類事物
屬性用
變量
來描述動態的行爲用
函數
描述
對象
類的具體化
函數/方法
函數就是功能實現,它遵循了特定語法,一段具有特定功能代碼。
例子
下面創建一個Student
類
// Student
package com.zhongxin.oject;
public class Student {
// javaBean POJO 沒有main方法
// 成員變量/成員屬性 類中方法外
int age = 10;
String name = "張三";
public void eat() {
// 方法體 具體完成的功能
System.out.println("學生喫");
}
public void sleep() {
System.out.println("學生睡覺");
}
}
// ObjectDemo
package com.zhongxin.oject;
public class ObjectDemo {
public static void main(String[] args) {
// 創建Student類的對象
// 類名 對象名 = new 類名();
Student s1 = new Student();
System.out.println(s1.age);
System.out.println(s1.name);
s1.eat();
s1.sleep();
}
}
成員變量/成員屬性
POJO
POJO:Plain Ordinary Java Object 簡單普通的java對象
沒有從任何類繼承、也沒有實現任何接口,更沒有被其它框架侵入的java對象。
JavaBean
JavaBean 是一種JAVA語言寫成的
可重用組件
。JavaBean符合一定規範編寫的Java類,不是一種技術,而是一種規範。
大家針對這種規範,總結了很多開發技巧、工具函數。
符合這種規範的類,可以被其它的程序員或者框架使用。
它的方法命名,構造及行爲必須符合特定的約定:所有屬性爲
private
。
在類中,方法外的變量
成員變量是屬於對象的,跟着對象走
int age = 10;
String name = "張三";
POJO和JavaBean的區別
POJO嚴格地遵守簡單對象的概念,而一些JavaBean中往往會封裝一些簡單邏輯。
函數
方法體:具體完成的功能
public void eat() {
System.out.println("學生喫");
}
對於一個加法來說,需要給兩個參數,並將需要返回一個值。
public int add(int a, int b) {
return a + b;
}
package com.zhongxin.oject;
public class ObjectDemo1 {
public static void main(String[] args) {
Student s1 = new Student();
int a = 1;
int b = 2;
int sum = s1.add(a, b);
System.out.println(sum);
}
}
構造函數
無參構造
有參構造,參數一般和屬性一致
如果在類中定義了任意構造方法,那麼java不再提供默認空參構造方法
package com.zhongxin.oject;
public class Phone {
int size;
String brand;
String color;
public Phone() {
}
public Phone(int s, String b, String c) {
size = s;
brand = b;
color = c;
}
}
使用
package com.zhongxin.oject;
public class ObjectDemo2 {
public static void main(String[] args) {
Phone a = new Phone();
System.out.println(a.size);
System.out.println(a.brand);
System.out.println(a.color);
Phone p = new Phone(10, "apple", "紅");
System.out.println(p.size);
System.out.println(p.brand);
System.out.println(p.color);
}
}
輸出內容
0
null
null
10
apple
紅
將構造方法的入參和成員變量同名
public Phone(int size, String brand, String color) {
this.size = size;
this.brand = brand;
this.color = color;
}
成員變量和局部變量的區別
局部變量的特點
定義在
函數體
內定義在函數參數列表裏
代碼塊
{}
中
全局變量的特點
定義在
類體
內在函數外
在代碼塊外
生命週期(作用域)
局部變量:出了包含他的
{}
就死亡全局變量:對象不消亡就一直存在