标签:运行 思想 引用 bst ted amp 内存 必须 相同
一、面向对象和面向过程
面向过程:Procedure Oriented 是一种自顶向下的编程
面向对象:Object Oriented 是将事物高度抽象化,必须先建立抽象模型(有属性和行为),之后直接使用模型就行
例:人把大象装进冰箱
面向过程:
1)打开冰箱
2)把大象放进去
3 )关闭冰箱门
面向对象:
人{
打开(冰箱){
冰箱.开开()
}
操作(大象){
大象.进入(冰箱)
}
关闭(冰箱){
冰箱.合上()
}
}
大象{
进入(冰箱){ }
}
冰箱{
开开(){ }
合上(){ }
}
面向对象的三大特征:封装、继承和多态
二、类的相关知识
类是对现实生活中一类具有共同特征的事物的抽象,比如所有的鸟都会飞,由属性(成员变量或Field) &行为(成员方法或Method)组成。对象是实际存在的该类事物的每个个体,是类的具体实例化。
成员变量和局部变量
在方法体外,类体内声明的变量称为成员变量,分为实例变量(不以static修饰)和类变量(以static修饰),实例变量存在于对象所在的堆内存中,可以有修饰符,如果在声明的时候,不显式的赋值,
那么不同数据类型会有不同的默认初始化值;在方法体内部声明的变量称为局部变量,分为形参(方法签名中定义的变量)、方法局部变量(在方法内定义)、代码块局部变量(在代码块内定义),
局部变量存在于栈内存中,没有修饰符,与所在的方法修饰符相同,一定要显式的赋值(局部变量没有默认初始化值)
package com.yyx.pratice; public class Person { // 成员变量 private String name; private int age; // 成员方法 public void eatFood() { //局部变量 String foodName = "汉堡"; System.out.println("我在吃" + foodName); } public static void main(String[] args) { Person person=new Person(); person.eatFood(); } }
三、类的内存分析
所有的对象名称都在栈内存中保存,而对象的具体内容则保存在对应的堆内存中,必须使用new关键字才能开辟堆内存空间
类属于引用数据类型,引用数据类型就是指一段堆内存空间可以同时被多个栈内存指向
package com.yyx.pratice; public class TestZoom { public static void main(String[] args) { Animal a1 = new Animal(); a1.name = "花花";// 对象.属性直接赋值 a1.setAge(3);// 封装思想 System.out.println(a1.name + " " + a1.getAge()); Animal a2=new Animal(); System.out.println(a2.name + " " + a2.getAge()); Animal a3=new Animal(); a3=a1; System.out.println(a3.name + " " + a3.getAge()); } } class Animal { String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } 运行结果:花花 3 null 0 花花 3
四、类的构造方法
类对象的属性赋值的先后顺序:
package com.yyx.pratice; public class Person { private String name; private int age; /* * 无参构造方法,在定义类时没有定义构造方法, * 则编译系统会自动插入一个无参数的默认构造器 */ public Person() { super(); } /* * 有参构造方法 */ public Person(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public static void main(String[] args) { Person person1 = new Person(); person1.setName("张三"); person1.setAge(23); System.out.println(person1.getName() + " " + person1.getAge()); Person person2 = new Person("李四", 21); System.out.println(person2.getName() + " " + person2.getAge()); } }
标签:运行 思想 引用 bst ted amp 内存 必须 相同
原文地址:https://www.cnblogs.com/xianya/p/9095392.html