02-面向对象、构造方法

面向对象有三大特征:封装、继承、多态

面向对象、过程,是需要一个区分的:

面向过程:打开冰箱、 存储东西进冰箱、 关闭冰箱门。
面向对象:冰箱.打开、冰箱.存储、冰箱.关闭。

是对现实生活中 对事物的描述,里面包括属性、行为
对象是这类事物实实在在存在的个体,每个个体都有他们的功能。

万物皆对象这句话不是说说而已,里面有大智慧。
而这句话只有有一定道行的人说出来才有味道。
初学者说这句话未免会显得哗众取宠。


成员变量:作用于整个类中。存在堆内存中,因为对象的存在才在内存中存在。
局部变量:作用于函数语句中。存在于栈内存中。

匿名对象:是对象的简化形式。
匿名对象使用事项:
1,匿名对象只能使用唯一一次,下次再用需要再new一个。
2,只要确定这个对象只需要使用一次 就可以用匿名对象。
格式:

new 类名称( );
//------------------------------------
public class Demo1{
   public static void main (String [ ] args){
  
   //普通方式
   Scanner  sc = new Scanner(System.in);
   int num = sc.nextInt();

   //匿名对象
   int num = new Scanner(System.in).nextInt();
   System.out.println("输入的是:"+ num);
 }
}


封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处:将变化隔离,便于使用,提高重用性和安全性。
原则:将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共方法对其访问。
封装的步骤
1 使用private关键字来修饰成员变量。
2 对需要访问的成员变量提供一堆getxxx、setxxx方法。

private的含义

  1. private是一个权限修饰符,代表最小权限。
  2. 可以修饰成员变量和成员方法。
  3. 被private修饰后的成员变量和成员方法,只在本类中才能访问。

private的使用格式
private 数据类型 变量名;

//1. 使用 private 修饰成员变量,代码如下:
  public class Student{
      private String name;
      private int age;
}
//2.提供 getXxx 方法 / setXxx 方法,可以访问成员变量,代码如下:

public class Student{
      private String name; 
      private int age;  
  
 public void setName(String n) {     
        name = n; 
  }     

public String getName() {   
        return name;  
 }     
public void setAge(int a) {    
       age = a;  
 }    
 public int getAge() {     
      return age;   
    }
 }

封装优化 --this关键字
方法被哪个对象调用,方法中的this就代表那个对象。即谁在调用,this就代表谁。
this 使用格式

this.成员变量名;

构造方法:构造方法就是用来创建对象的方法,当我们通过关键字new来创建对象的时候,其实就是调用的该方法。
格式:

public 类名称(参数类型 参数名称){
            方法体
    }

public class Student{
    public Student(){
       System.out.println("构造方法执行");
    }
}

注意事项:
1 构造方法的名称必须和所在的类名称完全一样,大小写都要一样的。
2 构造方法不需要写返回值类型。连void都不写。
3 构造方法不能return一个具体的返回值。
4 如果没有编写任何构造方法 那么编译器将会默认赠送一个构造方法 没有参数和方法 什么事儿都不做。但是如果你编写了,编译器就不会赠送构造方法。
5 构造方法也可以重载(重载:方法名称相同 参数列表不同)

一个标准的类通常由四部分组成
1 所有的成员变量都亚欧用private关键字修饰。
2 为每一个学员变量编写一对get/set方法
3 编写一个无参构造方法
4 编写一个有参构造方法
这种标准的也叫做JavaBean
例子:

public class Student {  
     //成员变量                           
    private String name;   
    private int age;     
    
    //构造方法   
    public Student() {}   
    public Student(String name,int age) {  
             this.name = name;     
             this.age = age;  
     }    
   //成员方法   
    publicvoid setName(String name) { 
          this.name = name;  
     }     
    public String getName() {     
          return name; 
     }     
    publicvoid setAge(int age) {     
          this.age = age;   
    }     
    publicint getAge() {     
          return age;  
     } 
  }

你可能感兴趣的:(02-面向对象、构造方法)