JAVA学习笔记(十七)

本文介绍了面向对象编程中的核心特性——封装,通过Java实例展示了如何使用private关键字保护成员变量,确保数据的合理性。同时,讨论了this关键字的作用,特别是在方法中区分局部变量和成员变量时的使用。此外,还提供了创建getter和setter方法的示例,以实现对外部访问的控制。
摘要由CSDN通过智能技术生成

面向对象的三大特性

面向对象三大特征:封装、继承、多态。 封装性在Java当中的体现: 1.方法就是一种封装 2.关键字private也是一种封装 封装就是将一些细节信息隐藏起来,对于外界不可见。

 public class Demo02Method {
     public static void main(String[] args){
         int[] array = {5,15, 25, 20,100};
         int max=getMax(array);
         System.out.println("最大值:"+max);
     }
     //给我一个数组,我换给你一个最大值
     public static int getMax(int[] array){
         int max=array[0];
         for (int i = 1; i< array.length; i++) {
             if(array[i] >max){
                 max=array[i];
             }
             return max;
         }
     }
 }

private关键字的作用及使用

问题描述:定义Person的年龄时,无法阻止不合理的数值被设置进来。解决方案:用private关键字将需要保护的成员变量进行修饰。

一旦使用了private进行修饰,那么本类当中仍然可以随意访问。但是!超出了本类范围之外就不能再直接访问了。 间接访问private成员变量,就是定义一对儿Getter/Setter方法 必须叫setXxx或者是getXxx命名规则。 对于Getter来说,不能有参数,返回值类型和成员变量对应;对于Setter来说,不能有返回值,参数类型和成员变量对应。

成员变量

 public class Person {
     String name; // 姓名
     private int age; // 年龄
     public void show() {
         System.out.println("我叫:"+name +",年龄:"+ age);
     }
     //这个成员方法,专门用于向age设置数据 public void setAge(int num) {
     age =num
 }

Getter/Setter方法

 public static void main(String[] args){
     Person person=new Person(); 
     person.show();
 ​
     person.name ="赵丽颖";
 ​
     //person.age=-20;//直接访问private内容,错误写法! 
     person.setAge(20); 
     person.show();
 }
 //这个成员方法,专门用于向age设置数据 
 public void setAge(int num) {
     if(num < 100 && num >= 0) {// 如果是合理情况
         age =num;
     } else {
         System.out.println("数据不合理!");
     }
 }
 //这个成员方法,专门用于获取age的数据 
 public int getAge(){
     return age;
 }

练习使用private关键字定义学生类

关键是boolean常量的G/S语句

对于基本类型当中的boolean值,Getter方法一定要写成isXxx的形式,而setXxx规则不变。

G/S语句

 public class student {
     private String name; // 姓名 
     private int age; // 年龄
     private boolean male; // 是不是爷们儿
 ​
     public void setMale(boolean b) {
         male = b;
     }
     public boolean isMale() {
         return male;
     }
 ​
     public void setName(String str){
         name =str;
     }
     public String getName(){
         return name;
     }
 ​
     public void setAge(int num) {
         age = num;
     }
     public int getAge(){
         return age;
     }
 }

成员变量

 public class Demo04Student {
     public static void main(String[] args){
         Student stu=newStudent();
 ​
         stu.setName("鹿晗"); 
         stu.setAge(20);
         stu.setMale(true);
         
         System.out.println("姓名:"+stu.getName());
         System.out.println("年龄:"+stu.getAge());
         System.out.println("是不是爷们儿:"+stu.isMale());
     }
 }

This关键句的作用

当方法的局部变量和类的成员变量重名的时候,根据“就近原则”,优先使用局部变量。

如果需要访问本类当中的成员变量,需要使用

格式: this.成员变量名

“通过谁调用的方法,谁就是this。"

 public class Demo01Person{
     public static void main(String[] args){
         Person person=new Person();//设置我自己的名字
         person.name ="王健林";
         person.sayHello(name:"王思聪");
     }
 }
 public class Person {
     String name;// 我自己的名字
     //参数name是对方的名字
     //成员变量name是自己的名字
     public void sayHello(String name) {
         System.out.println(name +",你好。我是"+this.name);
     }
 }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值