栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java属性详解|属性的定义、调用方法、限制语句,以及带参构造方法对属性赋值

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java属性详解|属性的定义、调用方法、限制语句,以及带参构造方法对属性赋值

属性详解
  • 一、基础的属性使用方法
    • 1、属性的定义语句
    • 2、把一个属性定义为private的作用
    • 3、属性的调用方法
    • 4、属性的限制方法
    • 5、属性值输出的语句为
  • 二、构造方法的属性赋值
    • 1、构造方法的介绍
    • 2、带参构造方法对属性赋值
    • 3、快捷键自动创建构造方法
  • 附两种方式的代码
    • 第一种
    • 第二种

一、基础的属性使用方法 1、属性的定义语句

在类里面

public class fengzhuang {
  private String subjectName;
  int subjectLife;
2、把一个属性定义为private的作用

1、把属性定义为private,就是将访问的范围限制到了内部。
比如在一个类中,【通常属性的定义也是在类的内部, 这样类里面的方法也可以进行属性访问和调用】

2、优势:
【防止属性被 随意更改赋值】
比如subjectName被定义为private,
而subjectLife是默认的public
在另外一个类的方法中,创建好这个类的对象后,
会发现能够调用的属性,只有subjectLife,subjectName被隐藏了,只能通过那个类中的方法调用、赋值。

【限制属性的值或范围】
由于上一点,private的属性只能在本类中方法执行调用的语句,在对应的赋值方法里,可以限制属性的值
比如下面第3点。

3、属性的调用方法

set是设置属性内容
get是获取属性结果

public void setSubjectName(String subjectName){
this.subjectName=subjectName;
}

public String getSubjectName(){
return subjectName;
}
4、属性的限制方法

如果接收到的subjectLife小于等于0,就return结束方法的运行。

【在实际执行中,给subjectLife赋值-3,遇到return语句后,确实跳出了后面语句的执行】
但由于int的默认值为0,因此 最后输出的subjectLife是0。

public void setSubjectLife(int subjectLife) {
  if (subjectLife <= 0)
    return;
  this.subjectLife = subjectLife;
}
5、属性值输出的语句为
  public void projectTest(){
        fengzhuang set1=new fengzhuang();
        set1.setSubjectName("计算机科学与技术");
        String n=set1.getSubjectName();
        System.out.println("学科名字有"+n);

        fengzhuang set2=new fengzhuang();
        set2.setSubjectLife(-3);
        int n1=set2.getSubjectLife();
        System.out.println("学科制是"+n1+"年");
  }
二、构造方法的属性赋值 1、构造方法的介绍

构造方法–无参构造方法
也称之为构造函数、构造器
1、构造方法与类同名且没有返回值类型,即只有2个单词,一个是访问修饰符,一个就是名
2、只能在对象实例化的时候调用
3、当没有指定构造方法时,系统会自动添加无参的构建方法
4、当有指定构造方法,无论是有参、无参的构造方法,都不会自动添加无参的构造方法
5、一个类中可以有多个构造方法

带参构造方法
参数的传值遵循就近原则,比如在类中创建了成员属性,在类的构造方法中也创建了同样的变量。

但是在调用构造方法进行传值时,时优先在【同一个范围内即】构造方法中找对应的变量,如果有的话,就传给它们。

如果找不到对应的,才会【扩大搜索范围】传递给类中的成员属性。

2、带参构造方法对属性赋值

带参构造,实现对属性的全部赋值
先在属性设置的类中添加上

    public fengzhuang(String subjectName,int subjectLife){
        //相当于this.subjectName=subjectName;
        this.setSubjectLife(subjectLife);
        this.setSubjectName(subjectName);
    }
    public String info(){
        String str="学科名称n"+this.getSubjectName()+"学制"+this.getSubjectLife();
        return str;
    }

此时属性的调用语句可以简写为

    public void projectTest(){
        fengzhuang fe=new fengzhuang("英语",3);
        System.out.println(fe.info());
    }
3、快捷键自动创建构造方法

快捷键是alt+insert

也可以右键创建
路径是generate-constructor-选择属性,点OK就是创建带参构造方法
不选择属性,点击select None,就是创建无参构造方法

附两种方式的代码 第一种

1、设置属性

package com.company;

public class fengzhuang {
    private String subjectName;
    int subjectLife;

    public void setSubjectName(String subjectName){
        this.subjectName=subjectName;
    }

    public String getSubjectName(){
        return subjectName;
    }

    public void setSubjectLife(int subjectLife) {
        if (subjectLife <= 0)
            return;
        this.subjectLife = subjectLife;
    }


    public int getSubjectLife(){
        return subjectLife;
    }
}

2、属性调用

package com.company;
import com.company.fengzhuang;

public class Main {
    public static void main(String[] args) {
        Main ma=new Main();
        ma.projectTest();
    }

    public void projectTest(){
        fengzhuang set1=new fengzhuang();
        set1.setSubjectName("计算机科学与技术");
        String n=set1.getSubjectName();
        System.out.println("学科名字有"+n);

        fengzhuang set2=new fengzhuang();
        set2.setSubjectLife(-3);
        int n1=set2.getSubjectLife();
        System.out.println("学科制是"+n1+"年");
    }
}

第二种

1、设置属性

package com.company;

public class fengzhuang {
    private String subjectName;
    int subjectLife;

    public void setSubjectName(String subjectName){
        this.subjectName=subjectName;
    }

    public String getSubjectName(){
        return subjectName;
    }

    public void setSubjectLife(int subjectLife) {
        if (subjectLife <= 0)
            return;
        this.subjectLife = subjectLife;
    }


    public int getSubjectLife(){
        return subjectLife;
    }

    public fengzhuang(String subjectName,int subjectLife){
        //相当于this.subjectName=subjectName;
        this.setSubjectLife(subjectLife);
        this.setSubjectName(subjectName);
    }
    public String info(){
        String str="学科名称n"+this.getSubjectName()+"学制"+this.getSubjectLife();
        return str;
    }

}

2、调用属性

package com.company;
import com.company.fengzhuang;

public class Main {
    public static void main(String[] args) {
        Main ma=new Main();
        ma.projectTest();
    }

    public void projectTest(){
        fengzhuang fe=new fengzhuang("英语",3);
        System.out.println(fe.info());
    }
}

今天的内容就到这里,如果有疑问,欢迎留言~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1036839.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号