此篇文章是对自己一个Java专题的内容进行补充,欢迎大家观看与评论小编的博客,如果喜欢小编的博客也不要忘了关注与收藏哦!
目录
new到底对对象做了什么?
创建对象的过程
构造器(一般在类属性下)
无参构造
this关键字
this永远指向调用它的“当前实例对象”
this方法访问构造器(一个构造器访问另外一个构造器,this当构造器只能放在第一行)
setter与getter方法
当你发现属性进行私有化后,程序的安全性提高了,但是当你需要进行修改与查看属性的需求时候怎么办?
setter与getter方法查看与修改属性
一个完整的Javabean
new到底对对象做了什么?
Java在new一个对象的时候,先会查看对象的所属类,有没有加载到内存当中,没有的话会经过名称加载到内存当中。加载并初始化完成后,进行创建工作。
创建对象的过程
1,在堆中分配对象需要内存。
2,对所有的实例变量都是默认值,
3,执行构造方法(类加载到内存当中是放在方法区中)
4,在栈区定义引用变量,然后把堆中的对象地址赋值给引用变量。
构造器(一般在类属性下)
构造器有时也称为构造方法,当我们new创建一个对象时,jvm就会白送我们一个构造器(一个无参无方法体的构造器),自己写了就不送了。
无参构造
import java.util.Objects;
public class Student implements Comparable {
//姓名
private String name;
//性别
private String sex;
//年龄
private int age;
//分数
private double score;
public Student() {
//无参构造
}
}
有参构造
import java.util.Objects; public class Student implements Comparable{ //姓名 private String name; //性别 private String sex; //年龄 private int age; //分数 private double score; public Student(String name, String sex, int age, double soore) { //有参构造 this.name = name; this.sex = sex; this.age = age; this.score = score; } }
this关键字
this永远指向调用它的“当前实例对象”
重要内容:每一个方法都会默认传入一个变量this,它永远指向调用它的“当前实例对象”。(this是方法的)
当类不被调用时,this也不知道自己指向谁
this方法访问构造器(一个构造器访问另外一个构造器,this当构造器只能放在第一行)
import java.util.Objects;
public class Student implements Comparable {
//姓名
private String name;
//性别
private String sex;
//年龄
private int age;
//分数
private double score;
public Student() {
//无参构造
this("xiaoming","男",18,88); //使用无参构造访问有参构造
System.out.println("this当构造器只能放在第一行");
}
public Student(String name, String sex, int age, double soore) {
//有参构造
this.name = name;
this.sex = sex;
this.age = age;
this.score = score;
}
}
setter与getter方法
当你发现属性进行私有化后,程序的安全性提高了,但是当你需要进行修改与查看属性的需求时候怎么办?
这个时候我们就需要使用方法来进行修改与查看方法。
setter与getter方法查看与修改属性
get方法统一来获取对象的属性(可以按照要求来实现格式化数据)
set方法统一来修改对象的属性(限制于校验方法传入的参数,隐藏对象的内部数据结构)
import java.util.Objects; public class Student implements Comparable{ //姓名 private String name; //性别 private String sex; //年龄 private int age; //分数 private double score; //重写TreeSet的比较规则 @Override public int compareTo(Student other){ return this.age-other.age; } public Student() { //无参构造 this("xiaoming","男",18,88); System.out.println("this当构造器只能放在第一行"); } public Student(String name, String sex, int age, double soore) { //有参构造 this.name = name; this.sex = sex; this.age = age; this.score = score; } //生成get方法 public String getName() { return name; } public String getSex() { return sex; } public int getAge() { return age; } public double getScore() { return score; } //生成set方法 public void setName(String name) { this.name = name; } public void setSex(String sex) { this.sex = sex; } public void setAge(int age) { this.age = age; } public void setScore(double score) { this.score = score; } }
一个完整的Javabean
JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制(反射机制)发现和操作这些JavaBean 的属性。
JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制(反射机制)发现和操作这些JavaBean 的属性。
import java.util.Objects; //一个完整的javaBean public class Student implements Comparable{ //姓名 private String name; //性别 private String sex; //年龄 private int age; //分数 private double score; public Student() { //无参构造 this("xiaoming","男",18,88); System.out.println("this当构造器只能放在第一行"); } public Student(String name, String sex, int age, double soore) { //有参构造 this.name = name; this.sex = sex; this.age = age; this.score = score; } //生成get方法 public String getName() { return name; } public String getSex() { return sex; } public int getAge() { return age; } public double getScore() { return score; } //生成set方法 public void setName(String name) { this.name = name; } public void setSex(String sex) { this.sex = sex; } public void setAge(int age) { this.age = age; } public void setScore(double score) { this.score = score; } //生成toString方法 @Override public String toString() { return "Student{" + "name='" + name + ''' + ", sex='" + sex + ''' + ", age=" + age + ", score=" + score + '}'; } }



