Java入门-对象

Java入门-对象

1.类

1.概念

​ 类是模板,规划了对象应该拥有怎样的属性方法

2.作用

​ 类是一种抽象的概念,把具有相同属性和方法的对象归为一类。

​ 注意:类里只有属性和方法

3.创建类
//创建人类
//注意:类里只有属性和方法
public class Person {
   

	//属性
	String name;
	int age;
	char sex;
	
	//方法
	public void eat(){
   
		System.out.println("吃饭饭");
	}
	
	public void sleep(){
   
		System.out.println("睡觉觉");
	}
}

2.对象

1.概念

对象是类的具体表现形式,我们不能操作类,但可以通过操作对象来改变类方法,比如操作属性和方法。

2.创建对象
//测试类:测试上面写好的人类代码
//测试类必须有主方法
public class Test01 {
   
	
	public static void main(String[] args) {
   
		//需求:创建人类,再创建人类的对象
		
		//创建人类的对象
		Person p = new Person();
		
		//操作属性 -- 设置属性
		p.name = "倪飞";
		p.age = 21;
		p.sex = '男';
		
		//操作属性 -- 获取属性
		System.out.println(p.name);
		System.out.println(p.age);
		System.out.println(p.sex);
		
		//调用方法
		p.eat();
		p.sleep();	
	}
}

​ 注意:测试类必须有主方法

​ 创建对象的语法结构:

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

​ 创建对象的步骤
(1).创建类(属性和方法)

​(2).创建对象

(3).设置/获取属性/调用方法
注意:测试类必须有主方法

3.面向对象流程图

1
2
3
总结:1.字节码只能加载一次

​ 2.每个对象独享一份成员变量

​ 3.方法中的this代表调用该方法的对象

4.成员变量

1.含义

​ 成员变量是类里、方法外的变量作用于整个类每个对象独享一份成员变量,而且系统会为成员变量赋默认值

2.注意:

​ (1).成员变量必须用对象调用

​ (2).成员变量的作用域在整个对象;

​ (3).对象被GC回收后成员变量会被回收

​ (4).创建对象时,系统会给赋默认值

整数类型0

浮点类型0.0

字符类型’ '

布尔类型false

引用类型null

​ (5).成员变量必须用对象调用

3.局部变量

​ 局部变量:方法里的变量,作用在该方法内,系统不会给其赋默认值

​ 方法被调用后,方法中的变量也会被GC立刻回收掉。

​ 局部变量的作用域在该方法;

5.成员方法

1.语法结构

访问修饰符 返回值类型 方法名[参数]{

…代码块…

}

2.成员方法 vs 静态方法

成员方法必须用对象调用

静态方法必须用类名调用

6.构造方法

1.含义

与类名相同并且没有返回项的方法

2.作用

​ 1.创建对象。和new一样,都是创建对象。

​ 2.初始化数据。利用有参构造,在new对象时初始化数据。

3.注意

​ 1.没有参数的构造方法叫做无参构造;有参数的构造方法叫做有参构造

​ 2.如果该类没有构造方法,系统会默认实现无参构造

​ 3.如果该类有有参构造,系统不会默认实现无参构造

4.构造方法流程图

在这里插入图片描述

5.经典面试题

​ 问:与类名相同的方法一定是构造方法吗?

​ 答:不一定

​ 问 :构造函数必须有无参构造吗?

​ 答:不一定

6.构造方法 vs 普通方法(成员方法和静态方法)

构造方法必须和类名相同且没有返回项

普通方法必须有返回项(void或具体的返回值)

7.private 修饰符

1.含义

​ 使属性或方法私有化

2.作用

修饰属性时:该属性不能被外界调用;

修饰方法时:该方法不能被外界(类以外)调用。

注意:private 不能修饰类,但可以修饰内部类

3.应用场景

​ 如果当前类的属性不想让外界调用,就用private修饰

​ 如果当前类的方法不想让外界调用,就用private修饰

8.封装

1.含义

私有化(private)属性,不让外界直接操作属性,通过调用方法去操作属性。

2.好处

​ 1.避免直接操作属性,可以在set/get方法中做额外的功能;

​ 2.私有化属性不让外界随便操作属性,让属性更安全

​ 3.通过方法去操作属性,可以添加额外的功能.

3.封装的过程

​ 1.私有化属性

​ 2.添加set/get方法

4.封装流程图

fz

9.编写一个类的步骤

1.步骤

​ 步骤1:编写属性,并用private私有化

​ 步骤2:创建无参构造和有参构造

​ 步骤3:添加get、set方法

​ 步骤4:添加其他方法

2.理解

​ 1.为什么私有化属性?

​ 答:不想让外界调用,考虑到数据的安全性

​ 2.为什么添加无参构造和有参构造?

​ 答:添加有参构造的目的是方便在创建对象时就初始化数据,但编写了有参构造,系统就不会默认实现无参构造,所以自己还要去写一个无参构造。

​ 3.为什么添加get/set方法?

​ 答:因为私有化属性后,使用get/set方法对外提供获取和设置的功能,还可以额外添加功能。

10.分包

1.基本作用

防止了类的重名

2.项目作用

​ 一个项目中有非常多的类,得把这些类分包,不同功能的类存放在不同的包中

3.公司常用类的命名

​ 工具类:com.公司名.项目名.uitl

​ 实体类:com.公司名.项目名.vo/bean/entity

​ 持久层的类:com.公司名.项目名.dao/mapper

​ 服务层的类:com.公司名.项目名.service

11.this

1.含义

​ this指本对象

2.作用

this.属性调用本对象的属性

this.方法调用本对象的方法

this() :调用构造方法(必须在构造方法的第一句)

注意:方法中的this代表调用该方法的对象

12.static修饰符

1.含义

​ static表示静态的

2.作用

​ 1.修饰属性:类属性/静态变量,直接用类名调用该类的每个对象共享一份

​ 应用场景:static + final

​ 静态变量的生命周期:

​ (1).在类加载到方法区时,系统会扫描该类的静态变量并存在静态区中;

​ (2).项目结束时,静态区中的数据才会被回收。(强引用)

​ 2.修饰方法(静态方法)

​ 语法结构:访问修饰符 static 返回值类型 方法名(参数){}

​ 应用场景:工具类

​ 注意:如果该类只是纯粹的功能,就可以把该类变为工具类,直接用类名调用静态方法即可。

​ 3.静态代码块

​ 作用:初始化静态变量的数据

​ 代码块、静态代码块、构造方法的区别:

	String str1;//成员变量
	static String str2;//静态变量
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

釣餌锒鐺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值