JavaSE基础概念(一)

1.对象和引用:
1.1、对象和引用的概念?
对象:目前在使用new运算符在堆内存中开辟的内存空间称为对象
引用:是一个变量,不一定是局部变量,还可能是成员变量,引用保存了内存地址,指向堆内存当中的对象
所有访问实例相关的数据,都需要通过‘’引用‘’的方式访问,因为只有通过引用才能找到对象
只有一个空的引用,访问对象的实例相关数据会出现空指针异常

	class Student{
		Computer com;  //com是一个引用【实例变量】

		public static void doSome(){
			Computer cc;   //cc是一个引用【局部变量】
}
}

2.参数的传递
主要研究和学习的是方法在调用的时候,涉及到参数传递的问题,到底是怎么传递数据的。

int i = 10;
int j = i;

i传递给j,实际上只是将i变量中保存的10传递给j了,j实际上是一块全新的内存空间

user u = 0x1234;
user u2 = u;

u传递给u2,实际上是将0x1234这个值赋值给了u2。u和u2实际上是两个不同的局部变量,但是他们这两个变量都指向堆内存中同一个java对象.

选择语句: if ; switch
循环语句:for while ;do…while
转向语句: break ; continue ; return

break;语句和return;语句不是一个级别 !!!!
break; 用来终止switch离他最近的循环
return;用来终止离他最近的一个方法

方法:是可以完成某个特定功能的并且可以被重复利用的代码片段,在C语言中叫函数

[修饰符列表] 返回值类型 方法名 (形参){
	方法体;
}

修饰符列表:不是必选项,是可选的
返回值类型:基本数据类型、引用数据类型。
注:当一个方法执行结束不返回任何值的时候,返回值类型不能空白,必须写上void关键字,所以void表示该方法执行结束后不返回任何结果,如果返回值不是void,那么在方法体结束时必须使用“return值”,只要有return的语句执行,当前方法必然结束,返回值不是void时 程序必须百分百要返回一个值
方法名:见名知意,首字母小写后面单词首字母大写

方法重载(overload)机制:
优点:
1.代码美观
2.“功能相似的”,可以让“方法名相同”,更易于以后代码的编写
在java语言中是如何区的呢?
首先java编译器会通过方法名进行区分,但是在java语言中允许方法名相同的情况出现,如果方法名相同的话,编译器可以通过参数类型进行方法的区分
什么时候代码会发生方法重载:
1.同一个类中
2.方法名相同
3.参数列表不同
注: 参数个数不同算不同 参数类型不同算不同 参数顺序不同算不同
只要同时满足上面三个要求,则判断方法与方法发生了重载机制
方法与返回值类型和修饰符列表无关
方法递归?
1.方法递归就是方法自己调用自己
2.当递归时,程序没有结束条件时,一定会发生栈内存溢出错误(StackOverflowError)所以递归必须要有结束条件
3.就算有结束条件,也有可能发生溢出错误,因为递归的太深,栈内存不够了

类: 抽象的概念 就是一个模板:类中描述的是所有对象的“共同特征信息”
对象(实例): 实际存在的个体

要想得到对象,必须先定义类,对象通过类这个模板创造出来的,对象就是通过类创造出来的个体

实例化:通过类这个模板创建对象的过程
抽象:多个对象具有共同特征,进行思考总结抽取共同特征的过程
类------(实例化)------>对象(实例)
对象------(抽象)------>类
类的定义:

 [修饰符列表] class {
    类体=属性+方法
   //属性在代码上以变量的形式存在(描述状态)方法描述动作、行为
}

注:修饰符列表可省略
方法体中声明的变量是局部变量
方法体外声明的变量是成员变量(这里的成员变量就是属性)
对象:对象是new出来的,在堆内存中存储
引用:但凡是变量,并且该变量中保存了内存地址指向了堆内存当中的对象

构造方法:
1.当一个类中没有提供任何构造方法,系统会默认提供一个无参数的构造方法,这个无参数的构造方法叫做缺省构造器
2.当一个类中手动的提供了构造方法,那么系统将不再提供无参数构造方法
3.无参数构造方法,和有参数的构造方法都可以调用
4.构造方法支持方法重载,在一个类中构造方法可以有多个,并且所有的构造方法名字都是一样的
什么是构造方法,有什么用?
构造方法是一个比较特殊的方法,通过构造方法可以完成对象的创建,以及实例变量的初始化,换句话说,构造方法是用来创建对象的,并且同时给对象的属性赋值(注意:实例变量没有手动赋值的时候,系统会赋默认值)
重点记忆!!!: 当一个类中没有提供任何构造方法,系统会默认提供一个无参数构造方法(而这个构造方法被称为缺省构造器)
调用构造方法怎么调用呢?
使用new运算符来调用构造方法
构造方法语法结构?

[修饰符列表] 构造方法名(形参列表){
      构造方法体;
      //通常在构造方法体当中给属性赋值,完成属性的初始化
}

注意:
第一:修饰符列表目前统一写为public,千万不要写public static
第二:构造方法名和类名一致
第三:构造方法不需要指定返回值类型,也不能写void,写上void表示普通方法,就不是构造方法了
普通构造方法的语法结构是?

[修饰符列表]返回值类型 方法名(形参列表){
      方法体;
}

静态变量:
1.加static的变量为静态变量
2.静态变量在类加载过程初始化,不需要new对象
3.静态变量存储在方法区
静态代码块在类加载时执行,并且在main方法执行前执行,静态代码块一般是按照自上而下的顺序执行

Java三大特性之一!!!
如何实现封装
1.属性私有化(private)
2.对外提供简单的操作入口 一个属性对外提供两个set和get方法,外部程序只能通过set方法修改,通过get方法读取,可以在set方法中设置关卡来保证数据的安全性
Set方法和get方法都是实例方法,不能带static
实例方法调用必须先new对象

Public 返回值类型 get 属性名首字母大写(){
return xxx;
}
Public void set 属性名首字母大写(一个参数){
xxx=一个参数;
}

注:以上均是自己用于学习总结,刚开始写顺序可能有点乱,不足之处请各位大牛指正,小菜比已经射射发抖了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值