Java基础day7(访问权限修饰符,构造方法,this关键字,封装)

(访问权限修饰符,构造方法,this关键字,封装)

访问权限修饰符

  • public private (缺省) protected
  • 他们都可以 用来修饰 属性和方法
  • 对于类来说,只能使用 public 和 缺省
  • 权限从大到小的排列:public protected 缺省 private
 public String name;// 公开的,任何地方都可以访问
 
 protected int age; //受保护的,同一包下的 或者是 子类 有访问权限
 
 String hobby;  // 缺省的,同一包下 有访问权限
 
 private String password;//私有的,只能在 类内部访问

构造方法

构造方法: 就是专门创建对象的方法,当我们在new的时候,其实就是在调用构造方法。
*

  • 如何定义一个构造方法:

  • (public) 构造方法名(参数){

    }

  • 注意:1.构造方法名要和 所在的类 的名字 完全一致,大小写也一致。

  • 2.构造方法不能有返回值,void也不行

  • 构造方法的作用:

  • 1.定义无参的构造方法,客户以直接new 对象,创建对象。

  • 2.可以定义有参的构造方法,进行实例化对象的时候 给成员变量进行 赋值。

  • 注意的点:

  • 1.java中,每个类都至少有一个构造方法。

  • 2.如果类 定义的 没有 任何 显式的构造方法,那么 系统会自动的 提供一个 默认的无参构造方法。

  • 3.如果在类中 定义了 显式的构造方法,那么系统将不再提供默认的无参构造方法。

  • 构造方法是 支持 方法重载的。

private String name;//书的名字
 
 private int page;//页码
 
 public void read(){
  System.err.println("正在读的书的名字为:"+name+";页码为:"+page);
 }
 
 public Book(){
  System.err.println("这是构造方法.....");
 }
 
 /*public Book(String nm){
  System.err.println("这是带有参数的构造方法.....");
  name = nm;
 }*/
 
 public Book(String nm, int pa){
  System.err.println("这是带有两个参数的  构造方法.....");
  name = nm;
  page = pa;
 }

this关键字:

  • 当局部变量和成员变量重名的时候。

  • 怎样在方法里去调用 成员变量? 使用this关键字 this.成员变量

  • this关键字可以理解为 当前使用的对象或者是正在创建的对象。

  • this 可以修饰属性,还可以修饰方法,还可以修饰构造器。

public class Student {
private String name; //成员变量
 
 public void reading(){
  System.err.println("学生的名字为:"+name);
 }
 
 public String getName(){
  return name;
 }
 
 public void setName(String name){//局部变量
  //怎样在方法里去调用 成员变量? 使用this关键字  this.成员变量
  this.name = name;
 }
 
 public Student(String name){//带有参数的构造方法
  this.name = name;
 }
}

封装

封装的意义:

  • 问题:当创建了对象之后,如果我们通过 ‘对象.属性’ 的方式直接进行赋值,则可能出现与现实不符的情况
  • 有些属性应该保护起来,不能被外部直接访问。
  • 怎么做封装:
  • 1把属性设置为私有的private
  • 2声明public公开的方法,里面实现对该属性的操作 getXXX 和 setXXX
public class Animal {
private String name = "狗";//动物的名字   成员变量(也通常称为属性)
 
 private int legs;//腿
 
 public void speek(){
  System.err.println("我的名字是:"+name+",我有"+legs+"条腿");
 }
 
 public String getName(){//getXXX方法,目的:获取动物的名字
  return name;
 }
 
 public void setName(String nm){//setXXX方法,作用:给名字属性 进行赋值
  name = nm;
 }
 
 public int getLegs(){
  return legs;
 }
 
 public void setLegs(int leg){
  if(leg>0 && leg%2==0){//腿的数目 要大于0,并且是偶数
   legs = leg;
  }else{
   System.err.println("您输入的数目不合法!");
  }
 }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值