一、类与对象
在现实生活中可以找不到对象,但如果在Java中找不到对象的话,麻烦可就大了。
Java是一种面向对象的编程语言。
可以说在Java前期的代码学习中,一切都围绕着类和对象进行展开,层层递进从而构成了代码严密的逻辑:创建一个新的类class,在类里再创建一个新new的对象。在类中可以定义成员变量和成员方法来描述对象的属性和行为,使得被创建的对象有时需要被不断地被找到并调用。
先通过几个以下小问题来引入这次类和对象的相关内容。
1.什么是类,什么是对象,两者之间有什么关系?
类:具有相同的属性—特征—行为—功能的一类对象。
对象:对类的实例化、具象化。
举一个贴近生活的例子,王者荣耀中的射手就是一个类(射手这类都具有远程攻击,输出伤害高,但较为脆皮,吃攻速等等的特征和属性),而射手—百里守约就是一个实例化对象(对象通常是具有差异化的,表现在后羿和伽罗虽然都是射手但是具体出装技能上都大有不同)。
二者之间的关系:对象伴随着类的出现而出现,可以这样说对象就是类的真子集。
2.对象很重要吗? 类具有哪些特征?
人可以没有对象吗,答案是可以的,但java却不行,Java为对象而活。在java代码中,我们不断地建立对象、调用对象、寻找对象,我们可以对对象进行设置,通过一些变量与方法来体现它的状态、逻辑与意义。类具有封装性、继承性与多态性,这几点特征非常之重要,后续会单独拿出来讲讲。
3.如何创建一个新的类和对象?
“ 我们在类中创造对象,创造我们想要实现的一切。”
创造类:
public class 类名 {}
那么在 { } 中可以放些啥:注释、成员(类的全局)变量、构造方法、接口等等。
创造对象:
对象 对象变量名 = new 对象();//标准格式
JButton jbt = new JButton();//例
什么是对象变量名,说白了就是给你的对象起个昵称。
举个不恰当的例子:鲁班大师 卤蛋 = new 鲁班大师();//注意代码编写要使用英文。
二、构造方法
由类到对象,再过渡到成员方法,现在我们就来讲讲方法的构造了。
1.什么是方法?方法的用途?
在Java中,方法是一组执行特定任务的代码块。也可以说方法是一段用来完成(执行)特定功能的代码片段,类似其他语言的函数。
方法位于类的内部,在执行时方法会被调用,作为类的一部分而存在。
在Java中,类是一种封装的基本单位。类中包含了成员变量和成员方法。成员方法就是对类进行操作的行为,它们封装了一组相关的代码。通过调用类的成员方法,我们可以在类内部实现一些逻辑操作,而不需要在外部直接访问类的成员变量。
这里简单介绍一下封装:我们使用封装的目的是将类的行为与实现细节解耦,提高代码的可维护性和重用性。同时,封装也可以隐藏类的内部状态,只暴露必要的接口来进行访问和修改,提高了数据的安全性。
2.方法的构成是什么,如何创建自己需要的方法?
在Java中,一个方法由修饰符、返回类型、方法名和方法体组成。
①访问权限修饰符(public private protected)+ ②返回值类型(void int double String Array)
+ ③方法名(参数列表??)+ ④方法体 { 方法具体的逻辑(执行)代码 }
//方法定义的一般格式如下:
修饰符 返回类型 方法名(参数列表) {
// 方法体
}
①访问权限修饰符 | public更为常用,其他的还有private和protected等等 | |
②返回值类型 | 1)有返回值 | 返回值类型为void(空),{ }内不强制使用return返回数据。 |
2)无返回值 | 返回值类型为数据类型,如int、String、数组等等,且强制要求在{}中结束的地方返回一个与该数据类型匹配相关的数据或者变量。( 例:return sth;) | |
③方法名 | (),这里需要考虑是否需要参数列表 | |
④方法体 | { } ,放一些具体的逻辑代码 |
是否含参 | 什么是参数: 用来接收传递给方法或构造函数的数据 | 含参 | ()里空着即可 |
不含参 | (参数的数据类型1 参数数据变量名1,参数的数据类型2 参数数据变量名2) 例:(int a ,int b) * 类型可以一样,但参数名必须有区别 |
在同一个类中,方法之间可以互相调用。
也可以将同类型的方法都创建在一个独立的类中,使用这个类的实例对象来调用这些方法。
三、不同返回值与含参类型的代码实例
例:
public class Test {
//①空参数+空返回值
public void printHello() { //打印 hello的方法
System.out.println("Hello!");
}
//②空参数+有返回值的方法
public int getRandomNumber() { //获取随机数的方法
Random random = new Random();
int randomNumber = random.nextInt(100);
System.out.println(randomNumber);
return randomNumber;
}
//③含参+有返回值
public int sum(int a, int b) { //求和方法
int sum = a + b;
return sum;
}
public static void main(String[] args){ //程序入口
Test test = new Test();
test.printHello(); //调用方法
test.getRandomNumber();
int result = test.sum(2,3);
System.out.println(result);
}
}