Java面向对象

1.面向过程

分析解决问题的所需要的步骤,然后我们用函数来一步一步的调用实现

2.面向对象

OOP面向对象编程,Java中万物皆对象,
做一个需求时,我们会抽取几种事物(类),每一种事务(类)都有共同的行为和属性

3.类

定义:我们把某些具有相同属性和行为的事物抽象成一类
在这里插入图片描述
1、类名和文件名没有任何关系,主类(public)名要和文件名一致,一个Java文件中只能有一个主类

3.1属性

属性就是这个类公有特征,用变量的定义方式来表示,可以没有初始值,jvm给属性默认值

java数据类型:
在这里插入图片描述
属性默认值:

类型默认值
byte0
short0
int0
double0.0
booleanfalse
char‘ ’
引用数据类型null

3.2方法

类的行为用函数
在这里插入图片描述

4.对象

1、概念:类是一个概念,对象是一个具体的实例
创建对象:类名 变量名 = new 类名()
在这里插入图片描述
2、通过对象可以访问属性:引用.属性名字
通过对象可以调用方法:引用.方法名(…)
3、用同一个类创建多个对象,每一个对象都有自己的属性,每一个对象都是数据隔离的

4.1对象创建的内存结构

1、栈:用于存储基本数据类型的值或者是局部变量,先进后出,存取容量小,存取速度快
堆:用于存储引用数据类型,存取容量大,存取速度慢
数据共享区:用于存储引用数据类型,共享的数据(方法)
2、图解

public static void main(String[] args){
	Dog dog = new Dog();
	dog.name = "毛毛";
	dog.gender = 1;
	dog.weight = 10.0;


	System.out.println("-----------")
	Dog dog1 = new Dog();
	dog1.name = "花花";
	dog1.gender = 2;
	dog1.weight = 100.0;

}

在这里插入图片描述
3、每一个类class加载到数据共享区中,jvm会解析这个类的内容,方法是每个对象共享的。
4、对象存储在堆中,引用存储在栈中,堆中的每一个对象的数据是隔离的

5.局部变量

1、局部变量的特点:

  • 作用范围:只限于所定义的大括号,以及这个大括号的子括号有效
  • 存储在栈
  • 没有默认值,局部变量必须赋值
  • 生命周期:所属的大括号结束就消失
    2、局部变量存在栈
public static void main(String[] args)
{
	Person p = new Person();
}

public static int add(int b,int c)
{
	return b + c;	
}

class Person
{

}

在这里插入图片描述

6.成员变量(类的属性)

除了成员变量,其他都是局部变量
1、属性特点:

  • 作用范围:依据权限修饰符
  • 存储位置:堆内存或者数据共享区
  • 有默认值
  • 生命周期:由jvm通过垃圾回收机制自动回收
    如果一个引用数据类型的变量null,意味着不指向任何的对象,堆中的对象就会变成匿名对象,很快就会被gc(垃圾回收器)回收。没有被置空,那么对象的属性就会等到大括号结束被回收。

7.匿名对象

匿名对象由于没有栈中的变量来引用,会被回收,毫无意义

new Dog().name = "花花";

今天也要好好学习呀~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小鹿可可乐

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

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

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

打赏作者

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

抵扣说明:

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

余额充值