2022-7-18 第二小组 张鑫 学习笔记
作者:互联网
实训第十天 面向对象
1.学习重点
1.面向对象
2.引用数据类型
3.成员方法-递归
4.方法的重载
5.访问权限
6.构造器
7.类与类的关系
2.学习心得
开启面向对象的学习,我感觉难度提升了一大截,知识点比较杂比较散,而且理解起来很抽象。所以吸收的还不是很好,昨天的考试也发现了很多不足,虽然之前老师说过有些知识了解即可,但是还是有同学能打接近满分,压力好大啊,不能够放弃!
3.学习内容
面向对象
Java是一门面向对象的编程语言。
面向过程和面向对象
面向过程:面向过程就是分析出实现需求需要的步骤,通过一些方法一步一步实现。
面向对象(行为化):把整个需求的按照特点、功能划分,将这些存在共性的部分封装成类(类实例化之后才是对象),让对象去解决问题。
面向对象更高级的抽象,是对现实世界的映射。
String,Scanner。我们在使用Scanner时候,从来没有考虑过Scanner为什么能键盘输入?
这就是别人给我们创建的对象,事实上我们也能自己创建对象,在开发中,基本上我们会大量的自己创建自己的对象
在Java中,面向对象有3大特征:
1、封装
2、继承
3、多态
4、抽象
创建对象的过程,类的实例化的过程,对象又叫做类的一个实例
对象名的命名规则:小驼峰
创建对象的语法:类名 对象名 = new 类名();
引用数据类型
之前学习过8种基本数据类型
所有的类都是数据类型,除了基本数据外都是引用数据类型。
此刻起,我们才真正了解了class这个关键字,创建一个类,用来创建一个数据类型。
像car1,car2,car3....car100叫引用,它是指向内存中的一块区域。存放这些对象的空间,我们叫做堆。
我们需要了解两块内存空间:
1、栈:变量,基本数据类型
2、堆
引用数据类型的初始值为null
赋值时,除了String外,其余的引用数据类型都需要new
只要看见了new,就不是null,它就有地址
成员方法-递归
自己调自己-递归
递归的问题:StackOverflowError 栈溢出 内存溢出
封装:1、代码层面 2、思想层面
如果把变量直接声明在类里:成员变量(全局变量)
如果把变量声明在某个方法里:局部变量
成员变量->属性
定义一个成员方法
public:访问权限修饰符,后面讲
void:没有返回值
run():方法名,标识符
{}:方法体。这个方法要干什么
():传参数
在声明方法时,括号里的参数,形式参数,形参,可以当做局部变量使用
在调用方法时,真正传入方法的参数,实际参数,实参。
参数可以有多个,中间用逗号隔开
Java中的传参,需要明确数据类型
有返回值的方法
public
boolean:返回值类型。我这个方法经过一系列的运行过后,要得到一个具体的值
这个值,返回值,返回值的类型是boolean
返回值用return xxx;类型要匹配
return关键字:
1.return关键字终止方法继续执行。
2.返回方法的返回值
如果一个方法有static
要调用一个非static的方法
就只能创建对象,使用对象.方法的形式调用
方法的重载
1.方法名相同
2.参数不同(参数的类型,参数的个数,参数的顺序)
3.发生在同一个类里
与返回值类型无关,与访问权限修饰符无关,与方法体无关
方法的重载的好处:
为了把功能相似相同的方法用同一个名字
案例
写两个重载的方法
1.一个方法求两个数的最大值
2.另一个方法求三个数的最大值
代码:
public int max(int num1,int num2) {
return num1 > num2 ? num1:num2;
}
public int max(int num1,int num2,int num3){
int a = (num1 > num2 ? num1 : num2);
return a > num3 ? a : num3;
}
public static void main(String[] args) {
Ch03 c = new Ch03();
c.max(1,2,3);
}
不定长参数
1.参数列表中,至多有一个不定长参数
2.不定长参数必须在最后位置
public int sum(String d,int ... arr){
int result = 0;
if(arr.length < 2){
result = arr[0];
}else {
for (int i : arr) {
result += i;
}
}
return result;
}
访问权限
public:一个工程下任意位置都可以访问
类,属性上,方法上,构造器
protected:可以跨包,如果跨包,必须是他的子类
属性,方法,构造器
(默认的):当前包下可以访问
类,属性,方法,构造器
private:只有当前类可以访问
属性,方法,构造器
构造器
构造器(构造方法)
语法:
访问权限修饰符 类名(参数列表){
}
特点:
1.java在new对象的时候,先看对象所对应的类有没有构造器,有什么样的构造器。
如果没有构造器,则无法创建对象
2.每个类会有一个默认的无参的构造器
3.在对象被实例化时,调用了构造器
4.我们创建对象实际上是通过构造器创建的
5.如果一个类中显式的声明了一个构造器,原来默认自带的无参构造器就失效
类与类的关系
has a关系
标签:int,张鑫,数据类型,构造,面向对象,参数,2022,18,方法 来源: https://www.cnblogs.com/zxscj/p/16492157.html