慢慢学习,然后惊呆所有人(构造器,this关键字)
Posted 韶光不负
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了慢慢学习,然后惊呆所有人(构造器,this关键字)相关的知识,希望对你有一定的参考价值。
此篇文章是对自己一个Java专题的内容进行补充,欢迎大家观看与评论小编的博客,如果喜欢小编的博客也不要忘了关注与收藏哦!
目录
this方法访问构造器(一个构造器访问另外一个构造器,this当构造器只能放在第一行)
当你发现属性进行私有化后,程序的安全性提高了,但是当你需要进行修改与查看属性的需求时候怎么办?
new到底对对象做了什么?
Java在new一个对象的时候,先会查看对象的所属类,有没有加载到内存当中,没有的话会经过名称加载到内存当中。加载并初始化完成后,进行创建工作。
创建对象的过程
1,在堆中分配对象需要内存。
2,对所有的实例变量都是默认值,
3,执行构造方法(类加载到内存当中是放在方法区中)
4,在栈区定义引用变量,然后把堆中的对象地址赋值给引用变量。
构造器(一般在类属性下)
构造器有时也称为构造方法,当我们new创建一个对象时,jvm就会白送我们一个构造器(一个无参无方法体的构造器),自己写了就不送了。
无参构造
import java.util.Objects;
public class Student implements Comparable<Student>
//姓名
private String name;
//性别
private String sex;
//年龄
private int age;
//分数
private double score;
public Student()
//无参构造
有参构造
import java.util.Objects;
public class Student implements Comparable<Student>
//姓名
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<Student>
//姓名
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<Student>
//姓名
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 的属性。
import java.util.Objects;
//一个完整的javaBean
public class Student implements Comparable<Student>
//姓名
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 +
'';
以上是关于慢慢学习,然后惊呆所有人(构造器,this关键字)的主要内容,如果未能解决你的问题,请参考以下文章