我的JAVA学习

JAVA学习笔记

1.方法

方法就是一个功能块
return ,返回数值,结束方法  
方法定义格式:
[修饰符] 方法返回类型 方法名(形参列表){
}
方法传值:值传递,没有引用传递

2.面向对象

以类的方式组织代码,以对象的方式组织
类:对对象的抽象
对象:具体的事物
对象以类为模板
以类的方式组织代码,以对象的方式组织(封装)数据

3.引用

String s;就是一个引用,但必须初始化否则会出错 ,如 String s="dadsf";//在JAVA中字符串可以加引用,一旦创建了一个引用,就希望他和一个对象相关联,通常用new操作符来实现这一目的,new关键字是“给我一个新对象”,所以:String s=new String ("dadsf");

4.属性初始化

数值默认值为0,引用类型默认值为null,boolean:默认初始值为false

5.变量

成员变量不用初始化(系统会自动初始化),方法中的变量需要初始化

6.内存分配空间

a栈:自动分配连续空间,后进先出,放置局部变量(方法类声明的变量)
b堆:不连续,放置new出的对象
c方法区(也是堆):存放类的代码信息,static变量,常量池
第一步:从main方法开始
第二步:通过类加载器Class Loader 加载类,加载后,方法区中就有了类中的信息
    1.代码(a.一堆属性,b.方法)
    2.static变量
    3.常量池(字符串常量,双引号里面的)
第三步:操作对象(操作地址)

7.构造方法 constructor

[修饰符]类名(形参列表){   }
public car()
一种特殊的方法
1.通过new 关键字调用
2.构造器虽然有返回值,但是不能定义返回类型(返回类型是本类),不能在构造器里面调用return
3.如果我们没有定义构造器,则系统会自动定义一个无参的构造函数
4.构造方法名必须和类名一致
5.构造该类的对象,经常也用来初始化对象的属性

8.方法重载overload

相同:同一个类,名字相同
不同:参数列表不同(类型不同,个数不同,顺序不同)
形参名不同不构成重载,返回值不同

9.static

static 变量 从属与类名(不用对象就可以调用)
成员变量从属与对象
从属类的的static方法,不能调用非静态的事物
从属于对象的可以调用从属于类的(static方法),先加载类,然后再找

10.this

this 用于方法内部
每一个对象的方法(普通方法)都有隐式参数this
this 还可以用于调用其他构造方法,但必须放在首位

11.继承(extends,子类是父类的扩展)

类是对对象的抽象,继承是对某一批类的抽象,从而实现对现实世界更好的建模
提高代码的复用性
JAVA中只有单继承,没有多继承(Java更接近与生活,采用单继承方便维护,单继承在类多的时候比多继承好)
Java中的多继承,可以通过接口来实现
所有类的主类都是Java.lang.Object类,如果没有定义继承,则默认继承Object类

12.方法的重写(override)

在子类中可以根据需要对从基类中继承来的方法进行重写

13.组合

也可以使得代码复用,继承的概念是:哺乳动物是动物(is-a),
组合:组合则是包含关系,如计算机包含主板(has-a)

14.final

修饰变量 修饰后的变量就是常量了不能更改
修饰方法 修饰后该方法不能被重写,但是可以被重载
修饰类 修饰的类不能有子类,不能被继承,比如Math,String

15.封装

pricate(私有)同一个类可以看到,其余都不行
default(默认)同一个类,同一个包可以看到
protected(保护)同一个类,同一个包,一个包可以看到
public(共有)同一个类,同一个包,子类,所有类都能看到

16.多态

编译时类型 对应说,
运行时类型 对应做,
多态的3个必要条件:要有继承,要有方法重写,父类引用指向子类对象
父类的引用指向子类的对象,多态是指方法的多态

17.内部类

成员内部类:
a.静态内部类:当一个静态内部类存在时,外部类部一定存在,静态的不能调用外部类非静态的属性方法,但可以使用静态属性
b.非静态内部类:可以使用外部类的成员,但外部类无法访问内部类的成员,不能有静态方法,静态变量,静态属性
匿名内部类:只使用一次的类,如键盘监听操作等等
格式:new 父类构造器(实参类表) 实现接口(){}

18.数组

动态初始化:直接赋值 a[0]=5;
默认初始化:数组元素相当于对象的成员变量,默认值跟成员变量的规则一样数字0,布尔falsa,char\u0000,引用:null
静态初始化:int c[]={23,25,26,};
名与实:
数组长度一但确定,就不能更改,数组是final修饰
int[]student=new int[5];
student[0]=88;
int[]teacher=new int[6];
teacher[0]=55;
teacher=student;//使teacher指向student
System.out.println(student[0]);
System.out.println(teacher[0]);
//输出结果
88
88



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值