Java基础学习二————语法与面向对象

Java学习二————语法与面向对象
1.方法(即函数):method

声明一个方法:
权限修饰符+返回值类型+方法名

调用方法时需要调用者和被调用者是同等级
如用static修饰的main方法比未用static修饰的方法高一等级,则无法调用。

方法递归:方法自己调用自己。可能会造成内存溢出。

方法的重载:
Java中允许存在方法名相同的方法,但参数表不能相同

Java程序的内存分配:
方法区:存储可运行的class文件,包含方法,静态成员,变量等
栈:方法运行时使用的内存,特点是“先进先出”
堆:存储new出来的数组或对象
本地方法栈:jvm在调用操作系统功能时使用,与开发无关

jvm
在这里插入图片描述

定义一个局部变量时,会在jvm中的栈内存中开辟一个空间
定义方法也会在栈中开辟空间,定义在方法中的局部变量在栈内存中,定义在方法中的成员变量在堆内存中。
对象被创建后被存放在堆内存中。
在运行阶段,类加载器的作用就是在目录中找到具体的class文件,class文件就是被装在方法区中的。

2.数组
引用数据类型:变量arr存储的是数组在堆内存中的地址值,而不是数组元素的值,变量arr通过内存地址引用堆内存中的数组,所以数组是引用数据类型。
//声明一个数组
String[] str = new String[10];`
这种声明方法中,左边是声明了一个变量,放在栈内存中,右边是一个数组,放在堆内存中。
引用数据类型存放在栈内存中的是一串地址,指向堆内存中被new出来的部分,这是地址的指向。
基本数据类型存放在栈内存中的是值。

或者声明一个静态数组
int a[] = {10,20,30,40,50}`
左右两边都存放在栈内存中

3.面向对象
特征:封装,继承,多态。

如一个包的对象要使用另一个包中类的属性,可以选择将被使用类的权限设置为public,但这会失去封装的意义,所以一般采用将类中变量设置为private,方法设置为public,通过方法调用变量(如getName和setName)。
例如age,可以用getAge()来获得年龄,用setAge()来修改年龄。

可用this关键字指向本类的成员变量

构造方法:给对象的数据进行初始化。
构造方法格式:
———方法名与类名相同
———无返回值类型

如public user(){} //无参构造方法

//有参构造方法,作用是在创建对象时就给本类的属性赋值
public user(string name,int age){
this.name = name; //this指向的是本类的成员变量name,右边的name是传过来的参数。
this.age = age;
}

所有的类,若是不写构造方法,都会自带一个无参构造方法,若是写了构造方法,则会覆盖掉自带的无参构造方法。

构造方法也可以重载,建立不同参数表的构造方法,根据所传参数来选择调用其中某一个构造方法。

创建一个对象:
class Animal
Animal cat = new Animal()
类名+对象名 = new 类名()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值