面向对象基础

本文详细介绍了面向对象编程中的基本概念,包括如何设计和使用类、对象,以及封装的重要性。特别关注了成员变量、构造方法、私有成员的访问控制、this关键字和标准JavaBean类的实现规则。
摘要由CSDN通过智能技术生成

面向:拿、找

对象:能干活的东西

面向对象编程:拿东西过来做对应的事

重点学习内容

一、学哪些

  1. 学习获取已有对象并使用
  2. 学习如何自己设计对象并使用(面向对象的语法)

  • 内容
  1. 设计对象并使用
  2. 封装
  3. this关键字
  4. 构造方法
  5. 标准JavaBean
  6. 对象内存图
  7. 成员变量、局部变量的区别

设计对象并使用

  1. 类和对象
  2. 补充

·类:是对象共同特征的描述

·对象:是真实存在的具体东西

在Java中,必须先设计类,才能获得对象

如何定义类

public class 类名{

1.成员变量(代表属性,一般是名词)

2.成员方法(代表行为,一般是动词)

3.构造器

4.代码块

5.内部类

}

例:

public class Phone {
    String brand;
    double price;
    public void call(){
        System.out.println("手机在打电话");
    }
    public void playGame(){
        System.out.println("手机在打玩游戏");
    }

}

如何得到类的对象

类名 对象名 = new 类名();

例:

Phone p = new Phone();

如何使用对象

·访问属性:对象名.成员变量

·访问行为:对象名.方法名(...)

补充

·用来描述一类事物的类,专业叫做:JavaBean类。在JavaBean类中,是不写main方法的。

·在以前,编写main方法的类,就叫做测试类。我们可以在测试类中创建JavaBean类的对象并进行赋值调用。

·类名首字母建议大写,需要见名知意,驼峰模式。

·一个Java文件中可以定义多个class类,且只能一个类public修饰,而且public修饰的类名必须成为代码文件。实际开发中建议还是一个文件定义一个class类。

·成员变量的完整定义格式是:修饰符 数据类型 变量名称 = 初始化值; 一般无需指定初始化值,存在默认值。

1.定义类的建议与注意

·类名首字母建议大写、英文、有意义,满足驼峰模式,不能用关键字,满足标志符规定。

·一个代码文件中可以定义多个类,但只能一个类是public修饰的,public修饰的类名必须是Java代码得文件名称。

  1. 成员变量的格式是什么样的,有什么特点

·成员变量的完整定义格式是:修饰符 数据类型 变量名称 = 初始化值;

封装

对象代表什么,就得封住对应的数据,并提供数据对应的行为。

理解封装思想的好处

让编程变的简单,有什么事,找对象,调方法就行。

private关键字

·是一个权限修饰符

·可以修饰成员(成员变量和成员方法)

·被private修饰的成员只能在本类中才能访问

·针对private修饰的成员变量,如果需要被其他类使用,应提供相应的操作

·提供setXxx(参数)方法,用于给成员变量赋值,方法用public修饰

·提供getXxx()方法,用于获取成员变量的值,方法用public修饰

this关键字

局部变量:方法里面称为局部变量

成员变量:方法外面称为成员变量

  1. 就近原则

System.out.println(age);  (先找局部位置)

System.out.println(this.age);  (直接找成员位置)

  1. this的作用

可以区别成员变量和局部变量

  1. this的本质和内存图

构造方法

作用:在创建对象时给成员变量进行赋值的。

格式:

public class Student{

修饰符 类名(参数){

       方法体;

}

}

特点:

  1. 方法名与类名相同,大小写也要一致
  2. 没有返回值类型,连void都没有
  3. 没有具体的返回值(不能由return带回结果数据)

1.构造方法的定义

·如果没有定义构造方法,系统将给出一个默认的无参数构造方法

·如果定义了构造方法,系统将不再提供默认的构造方法

2.构造方法的重载

·带参构造方法,和无参构造方法,两者方法名相同,但是参数不同,这叫做构造方法的重载

  1. 推荐的使用方式

·无论是否使用,都手动书写无参数构造方法,和带全部参数的构造方法

标准的JavaBean类

  1. 类名需要见名知意
  2. 成员变量使用priva修饰
  3. 提供至少两个构造方法

·无参构造方法

·带全部参数的构造方法

  1. 成员方法

·提供每一个成员变量对应的setXxx/getXxx

·如果还有其他行为,也需要写上

例:

public class user {
    private String username;
    private String password;
    private String email;
    private String gender;
    private int age;

    public user() {
    }

    public user(String username, String password, String email, String gender, int age) {
        this.username = username;
        this.password = password;
        this.email = email;
        this.gender = gender;
        this.age = age;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值