java基础(面向对象思想、类与对象、封装、构造方法、标准类JavaBean)

一、面向对象思想

1.什么是面向对象
	面向过程:强调的是过程。也就是完成功能的每一个步骤都需要自己亲力亲为
	面向对象:强调的是对象。也就是让对象帮我们去完成功能

	举例:
		程序中的例子:
			打印数组
				面向过程:自己写代码遍历。在循环中不断的通过数组名配合索引获取元素输出
				面向对象:Arrays.toString()直接打印数组

		生活中的例子:
			吃烤鸭
				面向过程:买一小鸭苗->买饲料->开始养大->杀掉->拔毛->清洗->偷砍一点红木->被抓了->劳改->安静的使用木炭烤一烤->开吃->收拾餐具
				面向对象:直接去全聚德点一份烤鸭->开吃

2.面向对象的好处
	A:将复杂的事情简单化了
	B:更符合人们思想习惯的思想(懒人思想)
	C:将程序员由执行者变成了指挥者

二、类与对象

类与对象的概念

	1.什么是类
	是对现实世界 同一类 具有 共同属性和行为 的 事物的模拟. 

	例如:学生类  

2.什么是对象
就是某一类事物的具体体现,是类的具体体现

	例如:张三、李四、王五

3.属性和行为
属性:
事物的基本特征 例如:学生类:都有姓名,都有年龄

	行为:
		事物可以做什么事情   例如:学生类:都会学习,都会吃饭

	通过类创建对象,一个类可以创建多个对象

类的定义

属性用成员变量去表示
行为用成员方法去表示

成员变量:
定义在类中方法外的变量就是成员变量

成员方法:
就是之前的方法去掉了static

示例代码:

public class Phone {

    // 成员变量
    String brand; // 品牌
    double price; // 价格
    String color; // 颜色

    // 成员方法
    public void call(String who) {
        System.out.println("给" + who + "打电话");
    }

    public void sendMessage() {
        System.out.println("群发短信");
    }
}

创建对象并使用

创建对象的格式:
类名 对象名 = new 类名();
Student stu = new Student();

成员变量的使用格式:
对象名.成员变量名
sout(stu.name);
如果在本类中使用就可以直接写成员变量名

成员方法的使用格式:
对象名.成员方法名(参数);

示例代码:

public class Demo01PhoneOne {

    public static void main(String[] args) {
        // 根据Phone类,创建一个名为one的对象
        // 格式:类名称 对象名 = new 类名称();
        Phone one = new Phone();
        System.out.println(one.brand); // null
        System.out.println(one.price); // 0.0
        System.out.println(one.color); // null
        System.out.println("=========");

        one.brand = "苹果";
        one.price = 8388.0;
        one.color = "黑色";
        System.out.println(one.brand); // 苹果
        System.out.println(one.price); // 8388.0
        System.out.println(one.color); // 黑色
        System.out.println("=========");

        one.call("乔布斯"); // 给乔布斯打电话
        one.sendMessage(); // 群发短信
    }
}

对象的内存分布

在这里插入图片描述

1.对象的实体保存在哪里?
答案:堆中,因为是new出来的
2.对象名保存的是什么?
答案:对象实体在堆中的地址值.

成员变量和局部变量的区别

1.定义位置
	成员变量:定义在类中方法外。作用于整个类中
	局部变量:定义在方法内或方法的声明上。作用于方法里

2.在内存中的位置
	成员变量:在堆内存中
	局部变量:在栈内存中

3.生命周期
	成员变量:随着对象的创建而创建。随着对象的消失而消失
	局部变量:随着方法的调用而创建。随着方法的消失而消失

4.初始化值
	成员变量:有默认初始化值
	局部变量:没有默认初始化值。使用之前必须赋值

三、封装

private

private是一个修饰符,它可以用来修饰类中的成员变量或者成员方法,被它修饰的成员只能在本类中访问,不能在其他类中直接访问
如果想进行访问私有的成员,必须要提供一套get和set方法

this

this:
this可以用来区分局部变量和成员变量同名的问题

this代表什么呢?
	代表当前对象的引用。谁来调用这个方法,this就代表谁
public void setName(String name){
    this.name = name;
}

四 构造方法

构造方法的特点:
①类名和方法名相同
②没有返回值类型,连void都不能写

构造方法的调用格式:
new 类名(参数);

构造方法
本身的作用(即使构造方法中什么代码也不写)
就是用来创建对象的,
它还有一个非常重要的作用是进行类中成员变量的默认初始化
我们赋予其的作用
给成员变量进行赋值

注意事项:
①如果没有写构造方法,编译器会默认赠送一个无参构造,如果写了,它就不会赠送了
②构造方法也可以重载

构造方法进行成员变量的赋值和set方法的区别
1.如果在创建对象的时候已经知道了所有成员变量的值可以使用有参构造进行设置,因为这样子需要调用一次即可.
但是如果对象已经创建完了,还想要修改成员变量的值就必须用setXxx方法.

五 标准类

所有的成员变量都用private修饰
提供对应的getXxx/setXxx方法
提供空参构造,全参构造,toString()方法

六 理论题

1.什么是类 ? 什么是对象, 以及类和对象的关系?
答案:
类是对现实生活中一类具有共同属性和行为的事物的抽象
对象:是能够看得到摸的着的真实存在的实体
通过类创建对象,一个类可以创建多个对象

2.类的组成部分是 ? 代码中分别用什么进行表示 ?
答案:
类是由属性和行为组成的
属性:成员变量
行为:成员方法

3.对象的创建格式是 ? 对象创建好之后, 调用对象中的成员格式是 ?
答案:
类名 对象名=new 类名();
对象名.成员变量名
对象名.成员方法(参数)

4.成员变量和局部变量有哪些区别呢 ?
答案:
成员变量位于类中方法之外,局部变量位于类方法之中
成员变量位于堆内存中,局部变量位于栈内存中
成员变量随着对象的存在而存在,随对象消失的消失,局部变量随着类中方法的调用而存在,随着其消失而消失
成员变量有默认的初始值,局部变量没有默认的初始值

5.你对 this 关键字的理解, this可以解决什么样的问题 ?
答案:
代表当前对象的引用(对象的地址)。谁来调用这个方法,this就代表谁
this可以用来区分局部变量和成员变量同名的问题

6.你对 private 关键字的理解, 以及可以解决什么样的问题 ?
答案:
private是一个修饰符,它可以用来修饰类中的成员变量或者成员方法,被它修饰的成员只能在本类中访问,不能在其他类中直接访问
保证代码的安全性

7.构造方法的本质作用是什么? 格式需要满足哪些要求 ?
答案:
用于给对象的数据(属性)进行初始化
1、方法名与类名相同,大小写也要一致
2、没有返回值类型,连void都没有
3、没有具体的返回值(不能由retrun带回结果数据)

8.构造方法会在什么时候执行, 能不能通过对象名调用?
答案:
在new对象的时候执行,不能

9.如果一个类中没写构造方法, 还能创建对象吗?
答案:
可以,默认会有无参的构造器

10.如果一个类中只有带参构造方法, 还能用空参构造创建对象吗 ? 请说明具体原因
答案:
不能,当定义了一个带参的构造器方法之后,无参构造器就会不存在了

11.标准的 JavaBean 需要满足哪些要求 ?
答案:
所有的成员变量都用private修饰
提供对应的getXxx/setXxx方法
提供空参构造,全参构造方法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值