java中面向对象语言的三大特征------封装

继承 封装 多态

封装

封装的本质就是让类的调用者不必太多的了解类的实现者是如何实现类的, 知道如何使用类就行。

private实现封装

被 private 修饰的成员变量或者成员方法, 不能被类的调用者使用。

  1. 属性一般都是私有(private)的,只能在类内部进行访问和初始化。在外部初始化的方法如下:
1.提供一系列get和set方法:(pubic 的)
 class Person {
    private String name;
    private int age;

    public void setName(String myName) {
        name = myName;
    }

    public String getName() {
        return name;
    }

    public void setAge(int myAge) {
        age = myAge;
    }

    public int getAge() {
        return age;
    }
}
    public class Test1 {
        public static void main(String[] args) {
            Person person = new Person();
            person.setName("hjy");
            System.out.println(person.getName());
            person.setAge(20);
            System.out.println(person.getAge());
        }
    }
//执行结果:
hjy
20

快捷键:alt + insert 自动生成所有方法

2.构造函数:(方法名和类名一样,没有返回值)

如果在实现类的时候,没有写构造方法,那么编译器会自动生成一个不带有参数的构造方法;如果写了一个不带有参数的构造方法,那么编译器将不会为你自动生成不带有参数的构造方法。

  1. 作用:构造一个对象 / 实例化一个对象
  2. 步骤: 为对象分配内存 → 调用合适的构造方法
class Person {         
 private String name;//实例成员变量     
 private  int age;     
 private String sex;     

 //默认构造函数    构造对象      
  public Person() {           
    this.name = "caocao";        
 	this.age = 10;         
 	this.sex = "男";     
  }   
    
  //带有3个参数的构造函数     
   public Person(String name,int age,String sex) {         
 	 this.name = name;         
     this.age = age;         
     this.sex = sex;     } 
 
  public void show(){         
  System.out.println("name: "+name+" age: "+age+" sex: "+sex);     
  }     
} 
 public class Main{      
  public static void main(String[] args) {         
  Person p1 = new Person();//调用不带参数的构造函数  如果程序没有提供会调用不带参数的构造函数         
  p1.show();         
  Person p2 = new Person("zhangfei",80,"男");//调用带有3个参数的构造函数         
  p2.show();    
  }
} 
 
// 执行结果 
name: caocao age: 10 sex: 男 
name: zhangfei age: 80 sex:
  1. this 代表什么?
    当前对象的引用,不代表当前对象。且静态方法类不能使用 this ,通过this去调用其他构造方法,必须放到类内第一行。
  2. this 的用法:this.成员方法(实例成员方法和变量) ;this.成员变量; this( ) →调用含有一个参数的构造方法;
  3. 注意:构造方法可以是私有的,也可发生重载
public Person(){
public Person(String name){
public Person(String name,int age){
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值