*/
public class ClassDefin {
// 成员变量(区别于以前的方法内变量,此为全局变量,此类中所以方法都可使用此变量)
String name; //姓名
int age;//年龄
//成员方法 (区别于以前的面向过程的方法,无关键字static)
public void study() {
System.out.println("study");
}//学习
public void test() {
System.out.println("test");
}//考试
public void sleep() {
System.out.println("sellp");
}//睡觉
面向对象 1.面向对象的概述 面向对象:不关心具体过程与步骤,只关心我所需功能的被谁拥有,我找到这个拥有者(类似于有工程只需将工程交给包工头,等待结果即可); 面向过程:注重每一个具体过程与步骤,一定要亲力亲为。 2.类和对象的关系 类:是对一类事物的总结,这类事物都满足此类的属性与行为。 属性:事物的状态信息(也就是类中的成员变量) 行为:该事物能做什么(类中的成员方法) 对象:对象就是某类的具体体现。比如:大学生为类,则大学生小明就是对象。 类和对象的关系:类是对象的模板(总结或归类),而对象是类的具体实例化(具体的某个个体) 3.类的定义 package cn.javase.video.study.objectoriented;
/定义一个类用来模拟“学生”这个类,其中有两个部分组成 属性(是什么): 姓名 年龄 行为(能做什么): 学习 考试 睡觉 与java类对应: 成员变量(属性): String name; //姓名 int age;//年龄 成员方法(行为): pubic void study(){}//学习 pubic void test(){}//考试 pubic void sleep(){}//睡觉 注意事项: 1.成员变量是写在类中方法外。 2.成员方法中不要写static。
*/ public class ClassDefin { // 成员变量(区别于以前的方法内变量,此为全局变量,此类中所以方法都可使用此变量) String name; //姓名 int age;//年龄 //成员方法 (区别于以前的面向过程的方法,无关键字static) public void study() { System.out.println("study"); }//学习
public void test() { System.out.println("test"); }//考试
public void sleep() { System.out.println("sellp"); }//睡觉
}
1.对象的创建及其应用 package cn.javase.video.study.objectoriented;
import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;
/*对象的创建
// 3.对象的使用
// (1)对象名称.成员变量 System.out.println(CD.age); System.out.println(CD.name); System.out.println("name:" + CD.name + " "+"age:" + CD.age); System.out.println("---------------------------------------------------"); // 更新类中成员变量数值 CD.name = "王磊"; CD.age = 12; System.out.println("name:" + CD.name +" "+ "age:" + CD.age);
// (2)对象名称.成员方法 CD.sleep(); CD.study(); CD.test(); } }
4.手机类练习 (1):手机练习 类的代码 package cn.javase.video.study.objectoriented;
/*定义一个类 模拟“手机”事物
*/ public class ExerciseIphone { double price; String color; String biand;
public void calliPhone(String who) { System.out.println("Your can call "+who); }
public void message() { System.out.println("Your can sent message"); }
public void internet() { System.out.println("Your can user internet");
} } (2)手机练习 对象的创建使用 package cn.javase.video.study.objectoriented;
public class ExerciseIphoneUser { public static void main(String[] args) { ExerciseIphone ei = new ExerciseIphone();//创建对象
// 使用成员变量,为类中成员变量更新数值 ei.biand = "HuaWei"; ei.color = "Black"; ei.price = 3299.0; System.out.println("your iphone boand is :" + ei.biand + " your iphone color is :" + ei.color + " your iphone price is :" + ei.price); //使用成员方法 ei.calliPhone("Nick");// ei.internet(); ei.message();
}
5.一个对象的内存图
6.两个对象的内存图
方法区存储方法的信息,方法在栈中运行,进栈运行,运行结束后出栈。 栈中的成员变量phone one,phone two根据16进制地址值找到堆中new出的成员变量和成员方法,new的成员变量存储在堆中,对成员变量进行操作,根据16进制地址值找到堆中成员变量进行操作; 而new出的成员方法值在堆中存储16进制地址值。 成员方法执行:在栈中调用call();aendMessage();等类中的成员方法,此成员方法在栈中执行,结束后退出栈