网站用户建设的设计与实现,论坛网站免费建设模板下载安装,个人网站企业网站,h5制作软件app手机版文章目录 面向对象思想封装 面向对象思想
在计算机程序设计过程中#xff0c;参照现实中事物#xff0c;将事物的属性特征、行为特征抽象出来#xff0c;描述成计算机事件的设计思想。
面向对象思想的三大基本特征: 封装、继承、多态
1.类和对象 类是对象的抽象#xff… 文章目录 面向对象思想封装 面向对象思想
在计算机程序设计过程中参照现实中事物将事物的属性特征、行为特征抽象出来描述成计算机事件的设计思想。
面向对象思想的三大基本特征: 封装、继承、多态
1.类和对象 类是对象的抽象对象是类的具体实例 比如我们把所有学生归为一个类叫做学生类那么何为对象呢对象就是学生类的一个具体示例比如说是一个叫小明的学生这就是这个类的一个对象。
类是对一类事物的描述是抽象的。对象是一类事物的实例是具体的。类是对象的模板对象是类的实体。
类的定义
成员变量对应事物的属性 成员方法对应事物的行为
public class ClassName {//成员变量//成员方法
}对象的使用 创建对象类名 对象名 new 类名(); 使用对象访问类中的成员: 对象名.成员变量对象名.成员方法() 代码示例
public class Student {String name;int age;public void play(){System.out.println(我爱打篮球);}public static void main(String[] args) {Student xiaoMing new Student();xiaoMing.name 小明;xiaoMing.age 18;System.out.println(xiaoMing.name : xiaoMing.age);xiaoMing.play();}
}重点成员变量的默认值
数据类型默认值基本类型整数byteshortintlong0浮点数 floatdouble0.0字符char‘\u0000’布尔booleanfalse引用类型数组类接口null
对象内存图 一个对象调用一个方法内存图 两个对象调用同一方法内存图 一个引用作为参数传递到方法中内存图 成员变量与局部变量的区别
public class Bird {String name;int age;public static void main(String[] args) {String action ;}
}这里我们在类中方法外定义的变量是成员变量在方法内定义的变量是局部变量
在类中的位置不同 成员变量类中方法外 局部变量方法中或者方法声明上(形式参数)作用范围不一样 成员变量类中 局部变量方法中初始化值的不同 重点 成员变量有默认值 局部变量没有默认值。必须先定义赋值最后使用在内存中的位置不同 成员变量堆内存 局部变量栈内存生命周期不同 成员变量随着对象的创建而存在随着对象的消失而消失 局部变量随着方法的调用而存在随着方法的调用完毕而消失
封装
将成员变量隐藏在对象内部外界无法对其进行直接修改或操作增强代码的安全性
将属性隐藏起来若需要访问某个属性提供公共方法对其访问。
如何进行封装处理 首先是使用private关键字来修饰成员变量再通过提供一对getXXX()方法和setXXX()方法来供对象访问成员变量。 代码示例
public class Student {private String name;private int age;public String getName() {return name;}public void setName(String n) {name name;}public int getAge() {return age;}public void setAge(int a) {age a;}public static void main(String[] args) {Student xiaoMing new Student();xiaoMing.setName(小明);xiaoMing.setAge(18);System.out.println(xiaoMing.getName() : xiaoMing.getAge());}
}可以发现我们通过公共的get、set方法来对成员变量进行设值和取值但是这样的代码并不是最常见的。因此我们要了解this关键字。
this关键字 this代表所在类的当前对象的引用地址值即对象自己的引用。 因为this表示所在类的当前对象的引用所以我们可以通过this关键字来标识成员变量和传递的参数名使我们的代码更加优雅。 注意 当我们不使用this关键字来进行区别时无法正确的进行成员变量的赋值。
package demo01;public class Student {private 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;}public static void main(String[] args) {Student xiaoMing new Student();xiaoMing.setName(小明);xiaoMing.setAge(18);System.out.println(xiaoMing.getName() : xiaoMing.getAge());}
}构造方法 无论你与否自定义构造方法所有的类都有构造方法因为Java自动提供了一个无参数构造方法 一旦自己定义了构造方法Java自动提供的默认无参数构造方法就会失效。 构造方法的定义
修饰符 构造方法名(参数列表){// 方法体
}构造方法名与类名相同构造方法没有返回值
代码示例:
package demo01;public class Student {private 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;}public Student(String name, int age) {this.name name;this.age age;}public Student(String name) {this.name name;}public Student(int age) {this.age age;}public Student() {}public static void main(String[] args) {Student xiaoMing new Student(小明,18);System.out.println(xiaoMing.getName() : xiaoMing.getAge());}
}
从上代码我们可以看到构造方法是可以重载的但是我们也要注意当我们只设定有参的构造方法的时候无参构造方法就会消失。但是我们java中有些框架在进行反射时是需要无参构造器的支持的所以在我们创建类的时候最好是定义好有参构造方法以及无参构造方法
欢迎java热爱者了解文章作者将会持续更新中期待各位友友的关注和收藏。。。