Java中什么是类什么叫封装

//定义一个Phone类 
public class Phone {         
    String brand;     
    int price;     
    String  color;     
    public void brand() {         
        System.out.println(brand);     
    }     
    public void price() {         
        System.out.println(price);     
    }     
    public void Color() {         
        System.out.println(color);     
    } 
}

标准的类通常有四个部分组成

1.所有成员变量都要用private修饰

2.为每个成员变量写一对儿getter setter

3.编写一个无参构造方法

4.编写一个全参构造方法

标准JavaBean的定义格式

​ JavaBean是Java语言编写类的一种标准规范。符合JavaBean的类,要求类必须是具体的和公共的,并且具有无参数的构造方法, 提供用来操作成员变量的set和get方法。

  public class ClassName{        
      //成员变量        
      //构造方法       
      //无参构造方法【必须】       
      //有参构造方法【建议】        
      //成员方法         
      //getXxx()     
      //setXxx() 
  } 

成员变量和局部变量

1.在类中的位置不同

​ 成员变量:类中,方法外

​ 局部变量:方法中或者方法声明上(形式参数)

2.作用范围不一样

​ 成员变量:类中

​ 局部变量:方法中

3.初始化值的不同

​ 成员变量:有默认值

​ 局部变量:没有默认值。必须先定义,赋值,最后使用

4.在内存中的位置不同

​ 成员变量:堆内存

​ 局部变量:栈内存

5.生命周期不同

​ 成员变量:随着对象的创建而存在,随着对象的消失而消失

​ 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失

使用一个类

1.导包 指出类在什么位置 import 包名称.类名称; 如果属于同一个包,可以省略导包语句

2.创建 类名称 对象名 = new 类名称();

.使用 对象名.成员变量名; 对象名.成员方法名();

对象作方法返回值

public static void main(String[] args) {         
         Phone two = getphone();    //用two接收getphone()返回的对象的地址     
} 

public static Phone getphone() {                    
    Phone one = new Phone();          
    ...        
    return one;    //对象作为方法的返回值     
}   

对象作方法参数

 public static void method(Phone one) {        //对象作为方法的参数         			 
     System.out.println(one.brand);     
 } 

封装

  1. 使用 private 关键字来修饰成员变量。
  2. 对需要访问的成员变量,提供对应的一对 getXxx 方法 、 setXxx 方法。
  3. 封装不单是指private 方法的使用也是对一段的封装 封装之后可以提高代码复用性

private、getter、setter

public class Person {     
    private String name;    //使用private修饰后 不能直接访问 用使用getter、setter 获取和设置数据     
    private int age;     
    private boolean male; //是否为男生          
    public void setAge(int age) {                 
        this.age = age;    //可以借助set对传来的数据进行合理性判断     
    }     
    public int getAge() {            
        return age;    
    }     
    public void setName(String name) {      
        this.name = name;   
    }     
    public String getName() {     
        return name;     
    }   
    public void setMale(boolean male) {    
        this.male = male;   
    }    
    public boolean isMale() {    //特例:boolean类型的get要用is     
        return male;    
    }
} 

this

上面代码中setName方法中参数为name,是一个局部变量,打印语句中的两个name都是这个局部变量

如果想使用成员变量name,需要用this setAge同理 this一定存在于方法之中

哪个对象调用setName this就是谁 this指向那个对象

可以用于解决局部变量和成员变量重名的问题 this可以在自己的构造方法中使用 类似super

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

leon9512

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值