#复习
1. 方法的声明
2. 方法的调用(两种调用方式)
3. 方法的重载
方法的签名:确定方法的唯一性.由方法名称和参数列表构成.
方法的声明:方法的签名和方法体
<code>
public static void 方法名称(参数列表){
方法体
}
</code>
实际参数: 实参 调用方法时,实际传入的参数.
形式参数: 形参 在方法声明时所定义的参数,指明该方法可以接受什么类型的数据,以及接受的数量
method() ->不可以接受任何参数
method(int i) ->可以接受一个参数,该参数还必须是int类型的.
额外补充:main方法的参数为String[] args.代表main方法可以接受String数组类型的参数.
形参: 是没有任何内存空间的
参照C语言.在C语言中变量是有声明和定义两种说法的.声明在代码中可以理解为告诉编译器我在后面有可能要使用某个变量.而这个时候变量有可能是实际上还不存在.当在具体使用的时候还需要定义变量.简单理解定义就是赋值.
int i; 这是声明 .没有内存空间的
int i = 0; 这是定义. 会开辟内存空间.
Java为了避免使用声明而未定义的变量导致的错误.在Java中声明和定义是没有区别的.
int i;
int i = 0;
方法的调用时通过名称(参数)来实现的.因为名称+参数列表构成方法签名可以确定方法的唯一性.
根据方法在声明时的写法不同.调用有两种方式:
1. 类名.方法名称() 该写法要求,该方法一定要被static修饰Math.random() Arrays.toString()
2. 引用变量.方法名称() 该写法的要求,一定不要有static.
目标:
1. 类
2. 对象
3. 对象的创建方式
4. 通过对象来调用类中的内容.
5. this关键字.
6. 访问修饰符
---
1.类:通过关键字class所定义的就是类.代表的是一种全新的数据类型.为了描述我们现实生活中的问题.
类的组成:
1.特征
2.行为
在代码是的体现
1.特征 体现在字段上(成员变量)
2.行为 体现在方法上(域,代码块)
一般main方法都是放在Test中.其它类中一般不写main方法.(除非你想只测试某一个类,这个时候会在这个类中写main方法.)
每一个class都是一个引用数据类型.用来描述我们要解决的问题.
利用class通过两个角度来描述问题:特征和行为.即除了这两方面的代码不应该有其它方法代码.
class X{
Y y = new Y();
y.name = "";//直接这样写是不对的.需要些成下面样式.
public void setName(){
y.name = "";
}
}
class Swim {}.Swing是一个行为.是Spike的行为.所以我们是要在Spike所对应的类中添加一个方法用来代表游泳.
总结类:
只要是class都可以被叫做类.属于引用数据类型.类中有两部分内容:
1.特征 : 字段(成员变量)
2.行为 : 方法(代码块)
根据变量的位置,在一个class中变量有多种叫法:
1.写在class中的.叫做成员变量 : Field(方法的外面.)
2.写在方法中的.叫做局部变量 : Local Variable
3.写在参数位置的,也是局部变量: Argument Parameter
class Test{
int i = 0; //--成员变量
public void method(int k){//--参数
int j = 0;///--局部变量.
}
}
成员变量作用域是整个class
局部变量(包括参数)作用域是方法内.
2.对象:一句话来描述的话,对象就是值.这个值是引用数据类型的值.对比下面两行代码
Scanner scan = new Scanner();
int i = 0
都是把等号右边的值.赋值给左边的变量.
对象对应现实生活中要给独一无二的个体.
比如要描述电视机.发现现有的类型(原生的8种)无法描述电视机.就使用class来自定义一个类,比如叫做TVclass Tv{} TV所描述的就是电视机这个类型(问题). class中涵盖了TV的所有特征和行为.但是class是一个抽象的存在.(像设计图.).根据class创建一个具体的值.(值就被叫做对象).任意一个具体的值.就代表一台真实存在的电视机.
简单说:类就是一个抽象的概念(可以使用设计蓝图,蓝图等对比理解)
对象是要给实际存在的事物.(根据设计图,制作出来的实物,对比理解)
引用数据类型的赋值:
引用数据类型 变量名称= 对象
Scanner scan = X; X == new Scanner();
原生数据类型 变量名称= 值
int i = 0;
3.对象的创建方式
Java中对象的创建方式大约有四种:
1.使用new关键字(第一阶段掌握)
剩下三个最后一阶段掌握.
2.克隆
3.反序列化
4.反射
使用new关键字的具体执行方式
new 数据类型();
我们能够实际操作的只有对象.同样也只有对象在内存中才有空间.
通过引用变量来操作对象.
static修饰的是属于类的
不是static修饰的是属属于对象的.
类和对象的概念强化:
品牌和苹果
品牌:类.里面涵盖了所有品牌的共性行为和特征
苹果:对象.具体的某一个品牌
手机品牌----------类
1.苹果------------对象
2.华为------------对象
3.oppo-----------对象
品牌和手机
手机:类 涵盖所有手机的共性特征和共性行为
某个品牌的手机:对象(诺基亚的手机)
游戏:
1.STD(射击类)
CS
2.RPG(角色扮演)
剑灵
3.SG(策略)
三国志
4.SLG(模拟)
同级生
5.ACT(动作)
拳皇
STD,RPG,SG,SLG,ACT 都属于类
CS, 剑灵,三国志,同级生,拳皇都属于对象
构造方法
构造方法是方法,但是和普通方法略微不同.该方法的名称和类名一致.且没有返回值(不是指void.而是指就没有返回值这一项)
class Animal{
//--构造方法.
Animal(){
}
//--下面是普通方法
public void method(){
}
}
构造方法:配合new关键字用于实例化对象.且只有这一个用途.
访问修饰符:想我们平时表达中的形容词和副词一样.起到限制和修饰的功能.从名字上看访问修饰符所限制的是访问权限.在Java中访问修饰符有4个值:
1.public : 公共的.
2.private : 私有的.
3.protected : 受保护的.
4.默认(package) : 包权限.只有在同一个包内的可以访问.出包就不可以.
public > protected > 默认 > private
方法的访问方式:
根据方法是否有被static修饰.有两种方式访问:
1.被static修饰的(静态,叫做静态方法) 推荐是直接使用类名.方法名 同理如果是字段那就是类名.字段名. 这些方法和字段也叫做类方法或者类字段.
如果写成对象.静态方法.也行但是会有警告且不推荐.
2.没有被static修饰的(区别于被static修饰的叫做类.所以这里叫做对象.)
方法:对象方法
字段:对象字段
访问方式只有1种:通过对象.访问 可以把点好理解为'的'
对象.方法 -> 对象的方法
对象.字段 -> 对象的字段
类的和对象的到底有什么区别:可以这么理解,一个是个人的,一个是公共的.
对象的.是每个对象自己所私有的.而类的.是这个类型所共有的
Java的内容模型:
我们一般把Java的内存模型分成4块.(目前为止)
1.堆 : 放所有new出来的东西.也就是说所有的对象放在堆中
2.栈 : 原生数据类型和引用变量.
3.代码区
4.数据区
--------------------待续-------------------