Java自学总结2
一、方法
概念
所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块。
一般情况下,定义一个方法的语法是:
其中:
1.返回值类型:方法返回值的类型,如果方法不返回任何值,则返回值类型指定为 void ;如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用 return 语句返回值;
2.访问修饰符:方法允许被访问的权限范围, 可以是 public、protected、private 甚至可以省略 ,其中 public 表示该方法可以被其他任何代码调用;
3. 方法名:定义的方法的名字,必须使用合法的标识符;
4. 参数列表:传递给方法的参数列表,参数可以有多个,多个参数间以逗号隔开,每个参数由参数类型和参数名组成,以空格隔开 ;
二、类与对象
1、类的定义
类必须先定义才能使用。类是创建对象的模板,创建对象也叫类的实例化。
代码示例:
package duke.example.ch3;
/**
* @author 啵啵啵
*
*/
public class classDog {
String name; //名字
int age; //年龄
void bark() { //汪汪叫
System.out.println("汪汪,不要过来");
}
void hungry() {
System.out.println("主人,我饿了");
}
}
2、创建对象
1.对象的定义
对象是类的一个实例,创建对象的过程也叫类的实例化。对象是以类为模板来创建的。
2.创建对象的步骤
在Java中,使用new关键字来创建对象,一般有以下3个步骤:
(1)声明:声明一个对象,包括对象名称和对象类型。
(2)实例化:使用关键字new创建一个对象。
(3)初始化:使用new创建对象时,会调用构造方法初始化对象。
代码示例如下:
Dog myDog; //声明一个对象
myDog = new Dog("卡拉",3); //实例化
也可以在声明的同时进行初始化:
Dog myDog = new Dod("卡拉",3);
3、构造方法
1.构造方法的定义
在实例化的过程中自动执行的方法叫做构造方法,它不需要你动手调用。构造方法可以在类实例化的过程中做一些初始化的工作。构造方法的名称必须与类的名称相同,并且没有返回值。
每个类都有构造方法。如果没有显式的为类定义构造方法,Java编译器将会为该类提供一个默认的构造方法。
构造方法的代码示例如下:
package duke.example.ch3;
public class Dog{
String name; //名字
int age; //年龄
Dog(String name, int age){ //构造方法,没有返回值
this.name = name;
this.age = age;
System.out.println(name = "感谢主人天天带我玩耍!");
}
void bark(){ //汪汪叫
System.out.println("汪汪,不要过来");
}
void hungry(){ //饥饿
System.out.println("主人,我饿了");
}
public static void main(String[] arge){
//创建对象时传递的参数要与构造方法参数列表对应
System.out.println("我是一只小狗,我的名字叫" + name + ",我" + age +"岁了!");
}
}
4、this关键词
java中的this关键字是写在方法里面的,分为以下两种情况:
- 若在构造方法中出现this关键字,this表示当前正在创建的对象。
- 若在成员方法中出现关键字this,this表示当前正在调用的对象。
先解释第一句话:
【范例1】:构造方法中的this
package duke.example.ch3;
public class ThisDemo1{
// 构造方法
public ThisDemo1() {
// 构造方法中的this表示当前正在创建的对象
System.out.println("构造方法中的this:" + this);
}
// 成员方法
/*
public void show() {
// 成员方法中的this表示当前正在调用的对象
System.out.println("show中的this:" + this);
}
*/
public static void main(String args[]) {
// 创建ThisDemo1类型的引用,指向ThisDemo1类的对象
ThisDemo1 ts = new ThisDemo1();
//ts.show();
System.out.println("main中的ts:" + ts);
}
}
输出结果:
构造方法中的this:LYB
main中的ts:LYB
从以上结果可看出对象td和this的值是一样的。
之前说过“构造方法中的this表示当前正在创建的对象”。
本例中,“当前正在创建的对象”就是“new ThisDemo1()”,this表示当前正在创建的对象,因此this就表示“new ThisDemo()”。引用变量ts也表示当前正在创建的对象"new ThisDemo1()",因此this的值也就和ts的值相同。
如果"当前正在创建的对象"是"new e-mail()",那么this就表示"new e-mail()"。
解释第二句话:
【范例2】:成员方法中的this
class ThisDemo2{
// 成员方法
public void show() {
// 成员方法中的this表示当前正在调用的对象
System.out.println("show中的this:" + this);
}
public static void main(String args[]) {
// 创建ThisDemo2类型的引用,指向ThisDemo2类的对象
ThisDemo2 ts = new ThisDemo2();
td.show();
System.out.println("main中的ts:" + ts);
}
}
输出结果:
show中的this: LYB
main中的td:LYB
从以上结果可看出二者的值是相同的。
【强行总结】
若在构造方法中出现this关键字,this表示当前正在创建的对象。(new的谁,this表示谁)
若在成员方法中出现关键字this,this表示当前正在调用的对象。(谁调用的,this表示谁)
this本质上就是本类的引用类型变量。
目录