2022-07-18 吉林化工学院 韩嘉宁 第一组 学习笔记(Java面向对象 1)
Java面向的对象(1)
Java
Java是面向对象的语言,万事万物皆可对象。
面向对象(行为化)
把整个需求按照特点、功能划分,将这些存在共性的地方封装在方法中并以对象实例化通过对象去解决问题。
面向过程
分析出实现需求的步骤,按照步骤一步步实现需求
属性:从代码层面来看就是变量
面向对象三大特性:
-
封装性(主要分为代码层面、思想层面)
-
继承性
-
多态性
-
如果把变量直接声明在类中,称为成员变量(又称属性)
如果把变量声明在方法中,称为局部变量
所有类都是引用数据类型,是指向内存中的一块区域,存放的空间叫做堆。
内存空间:
栈:存储数据类型,变量
堆:
-
引用数据类型初始值为null
-
赋值时,除了String外,都需要new一个对象
public:访问权限修饰符
void:没有返回值
run():方法名;标识符
标识符命名规则:小驼峰式
类名命名规则:大驼峰式
`属性名、方法名:小驼峰
- 在声明方法时,括号里的参数称为形式参数,可做局部变量使用
- 实际参数:在调用方法是赋予给形式参数的具体值。
有返回值的方法
定义方法时无void并声明返回值类型
public boolean run(int num){
if(num== 1){
return true;
}else{
return false;
}
}
return关键字
- 返回值
- 终止程序执行
方法中调用其他方法
- 在同一类中
创建对象通过对象调用方法
Car car=new Car();
car.set();
- 在不同类中
权限修饰符
public:公有类 整个工程中任意调用。 可以修饰类、属性、方法
protected:如果跨包访问,必须是该包 子类。只能放在属性和方法上
(默认的):只可在当前包下访问。 可以放在类、属性和方法上
private:只可在当前类下访问。 可以修饰属性和方法
如果一个方法中有static,在调用其他方法是必须创建对象调用。
自己调自己称为递归,可能导致栈溢出(内存溢出)
斐波那契数列
方法重载(Overload)
方法名相同
- 形参类型不同
- 顺序不同
- 个数不同
案例:用方法重载求两个数、三个数最大值
public int getMax(int num1, int num2 ){
return (num1>num2) ? num1:num2;
}
public int getMax(int num1,int num2,int num3){
return getMax(num1,num2) > num3? getMax(num1,num2):num3;
}
public static void main(String[] args) {
Study03 r=new Study03();
System.out.println( r.getMax(5,6));
System.out.println(r.getMax(6,7,8));
}
斐波那契数列
public static void main(String[] args) {
//斐波那契数列
for(i=1;i<20;i++){
System.out.print(fat(i) +" ");
}
}
static int fat(int i){
if(i==1||i==2)
return 1;
else{
return fat(i-1)+fat(i-2);
}
}
不定长参数
- 参数列表中最多有一个不定长参数
- 不定长参数必须在参数列表末端
构造器
语法:
访问权限修饰符 类名(){
}
特点 |
---|
Java在new对象的时候,先看对象有没有构造器,有什么样的构造器,若无构造器则无法创建对象 |
每个类会有一个默认无参构造器 |
在对象被实例化时调用构造器 |
类名 对象名=new 构造器();//相当于创建对象 |
类与类关系
拥有关系(has-a关系):对象与对象之间的关系
父子关系(继承关系)