Java面向对象

面向对象编程

OOP :Object Oriented Programming

1. 类与对象

类: 是群体性概念,描述一类事物共有的属性与行为
对象:是类在现实生活中 一个个实实在在的个体

示例:

/**
	用于描述学生信息
 *   学生共有的属性与行为
*/
public class Student{
     /**
     * 学生姓名
     */
    public String sname;
    /**
     * 学生手机号
     */
    public long stuTelno;
    /**
     * 学生年龄
     */
    public int studentAge;
    /**
     * 学生专业
     */
    public String studentMajor;    
    
}

StudentTest

public class StudentTest {



    public static void main(String[] args) {
        //描述我与同桌两个学生个体
        //创建学生对象
        //数据类型 变量名 = 值;
        int a = 10;
        //数据类型 对象名 = 值;
        Student student1 =   new Student();
        student1 = "SunShenshen";
        student1.studentAge = 20;
        student1.studentMajor="计算机";
        student1.studentTelno = 184398404L;

        Student student2 = new Student();
        student2.studentName = "LiuBaohe";
        student2.studentAge = 21;
        student2.studentMajor = "计算机";
        student2.studentTelno = 184934893L;

        System.out.println(student2.studentMajor);
       }
    }
  • 内存分配图 (重点)
    在这里插入图片描述

存在的问题

耦合性较高、可维护性比较差 : 修改Student成员变量名,其他类中的属性 也要修改
安全性较低: Student类的元信息(属性)暴露出去

解决:

1. 访问权限
*  public : 公共的,所有的类都能访问
*  private : 私有的, 只有本类能访问
 
2.set 方法 给属性赋值
  get 方法 获得属性值

Student

public class Student {
    /**
     * 学生姓名
     */
    private String sname;
    /**
     * 学生手机号
     */
    private long stuTelno;
    /**
     * 学生年龄
     */
    private int studentAge;
    /**
     * 学生专业
     */
    private String studentMajor;



    //给学生姓名赋值
    public void setStuName(String name){
        sname = name;
    }
    //给学生年龄赋值
    public void setStudentAge(int age){
        studentAge = age;
    }
    //给学生手机号赋值
    public void setStudentTelno(long telno){
        stuTelno = telno;
    }
    //给学生专业赋值
    public void setStudentMajor(String major){
        studentMajor = major;
    }

}

StudentTest

  Student student1 =   new Student();
  student1.setStuName("SunShenshen");
  student1.setStudentAge(20);
  student1.setStudentMajor("计算机");
  student1.setStudentTelno(138938493493L);

/*  
  public void setStuName(String name){
      stuName = name;   // 等价于 student =name = "SunShenshen"
  }
  
  */
  • 语法:

    创建对象
    // 类类型 Student s1 = new Student();
    类类型 对象名 = new 类类型();

    //访问对象的属性 s1.studentName = “Tom”
    对象名.属性名

    //访问对象的方法 s1.setName(“Tom”)
    对象名.方法名

  • 封装

    数据的安全性、耦合性

    具体体现: 访问权限(public - private )

      	set 、get
    
  • this关键字

    this : 当前对象
    this.属性 // 当前对象的某一个属性
    this.方法 // 当前对象的方法

  • 方法

    结构
    访问权限 + [static | final] + 返回值 + 方法名 + 参数列表 + 异常 + 方法体
    目前需要掌握的:
    访问权限 + 返回值 + 方法名 + 参数列表 + 方法体

    public class Student{

      public int getAge(){
    
      }
      public void setAge(int age){  // age 形式参数(形参),作用域范围 就当前方法
      
      }
    

    }

    Student stu = new Student();
    stu.setAge(10); //实际参数,实参

面向对象再次理解

public class Phone{
    private String phoneName;//手机名称
    private float phonePrice;//手机价格
    //set get
    
    //打电话
    public void call(){        
        
    }
}

public class PhineTest{
    public static void main(String[] args){
        // 手机所有的参数信息 都是从 手机对象 身上获得的
        Phone p1 =    new Phone();
        p1.setPhoneName("Huawei P30");
        p1.setPhonePrice(4288);        
        
        String pname = p1.getPhoneName();
        float pprice = p1.getPhonePrice();
        
        p1.call();  //  这个p1 华为手机 调用 打电话功能 对象的行为
        
        
        Phone p2 =    new Phone();
        p2.setPhoneName("Iphone X");
        p2.setPhonePrice(5288);        
        
        String pname = p2.getPhoneName();
        float pprice = p2.getPhonePrice();
        
        p2.call();  // 这个p2 iphone手机 调用 打电话功能 对象的行为
        
    }
    
    
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值