当前位置:网站首页>2022-07-18 第五小组 瞒春 学习笔记
2022-07-18 第五小组 瞒春 学习笔记
2022-08-02 14:21:00 【烫嘴的辛拉面】
学习目标:
- 充分掌握今天所讲的面向对象知识
学习内容:
今日所学汇总
Java是一门面向对象的编程语言
面向过程和面向对象
面向过程:就是分析出实现需求需要的步骤,通过一些方法来逐步实现
面向对象:行为化,把整个需求按照特点或功能来划分需求,将这些存在共性的部分封装成类(类实例化之后才是对象),让对象去解决问题。
string scanner
这是别人给我们创建的对象,事实上我们也能自己创建对象,大部分都是自己创建
例
我们准备开一个4s店,我们需要有车,门店
怎么用代码去描述一辆车。 对于车的描述信息就叫做属性,属性实际上从代码的角度来说就是变量。
定义变量:1 brand 2 color 3 length
问题:怎么同时描述多辆汽车?
我们使用面对对象的思想,我们将一个车辆的多个属性进行打包,这个给过程实际就是封装
在java中,面向对象有三个特征: 封装 继承 多态 抽象
封装:1 代码层面 2思想层面
public class Car{
String brand;
//车的品牌
String color;
//车的颜色
String length;
//车的长度
}
这个类(Car)就是描述汽车的属性的类
只声明,不赋值
如果把变量直接声明在类里,成员变量(全局变量) 成员变量——>属性
如果把变量声明在某个方法里,局部变量
需要运行类,就需要主方法:main
创建对象(创建了一个Car类的对象,car1就是对象的名,car1就是个标识符,命名规则小驼峰)
Car car1 =new car(); 类名 对象名=new 类名();
创建对象的过程就是类的实例化的过程,对象又叫类的一个实例。
给类的属性赋值:
car1.brand=”奥迪”;
car1.color=”白色”;
car1.length=5;
取出属性的值:
System.out.println(“生产了汽车,他的属性为:”+car1.brand+car1.color+car1.length);
如果有car2,那么car1和car2之间的相互隔离的
之前我们学习过程的8种基本的数据类型
我们遇到的所有的类,包括上面的Car也是一种数据类型。除了基本数据类型就是引用数据类型,所有的类都是数据类型,都是引用数据类型 class关键字的意义:用来创建一个数据类型。
存放Car1 car2这些引用的,指向内存的区域,堆
两块内存空间:
1 栈:变量,基本数据类型
2 堆:存属性
引用数据量类型的初始值为null(数组也一
只要看到了new就不是Null,他就有地址 对象不是空,属性不一定
Car car=new Car();
堆内存有
Car car(); 堆内存没有
赋值的时候,除了String之外,其余的引用都要用new 不new没地址
成员方法(相当于js里的函数):没有办法通过属性去描述,需要一步一步的去做到行为,
把面向过程封装成一个方法
定义一个成员方法:
Public void run(int gusoline){
If(gusoline==92){
System.out.println(”跑的更快”)
}
else if(gusolin==95){
System.out.println(”跑的更远”)
}
System.out.println(brand+”在漂移”)
}
中间省略了动作
public:访问权限修饰符
void :没有返回值
run():方法名.标识符 命名规则
{}:方法体,这个方法要赣什么
调用:
Car1.brand=
对象.属性名
对象.方法名
Car1.run(gasoline==95);
Void没返回值
java中的传参要标记数据类型
在声明方法时。括号里的参数,形式参数 形参 数组类型
在调用方法时,真正传入方法的参数,实际参数,实参。
有返回值的方法 void 中使return 只写一个就结束
没有返回值的方法 pubilc boolean run(){}
这个方法经过一系列运行过后,,需要得到一个值,这个值就是返回值,类型Boolean
返回值用 return xxx; 类型要匹配
有自动类型提升
Boolean result = car1.run(gasoline:12);
开发中一般都有返回值
Return 关键字 终止方法继续执行 返回方法的返回值
在一个方法中去调用另一个方法:
- Ch05 c=new Ch05();
c.info();
2. info();
Public:共有的,公共的 权限最大,只要是声明的方法 只要在同一个工程中,都能用
类 属性 方法,构造器
Private 私有的 只有在当前的类能用 属性 方法,构造器
方法名不能重复
如果一个方法上有static 要调用一个非static的方法,就只能创建对象,使用对象.方法的形式调用。
自己调自己:递归 递归的问题:栈溢出(内存溢出)
斐波那契数列
方法的重载的要求和特点
- 方法名相同
- 参数不同 (参数的类型,参数的个数,参数的顺序)
- 一定发生在同一个类里
多个数的运算
不定长参数的写法
main中 c.sum(1,2,3.....);
本质上就是数组
不定长参数:1.至多有一个不定长参数 2.必须在最后位置
访问权限
protected 可以跨包如果跨包必须是他的子类 属性 方法,构造器
默认的 只有当前包下才能访问
能放 类,属性,方法,构造器
不同的包 导包
java.lang包下的所有的类不需要显式导入
构造方法 构造器:
构造器的语法:访问权限修饰符 类名(){}
构造器的特点:1.java在new对象的时候,会先看对象所对于的类有没有构造器。有什么样的构造器,如果没有构造器,则无法构建对象。
- 每个类会有一个默认的无参的构造器。
- 在对象被实例化时,调用了构造器
- 我们创建对象实际上是通过构造器创建的
- 如果一个类中显式的声明了一个构造器,原来默认自带的无参构造器就失效
类名 对象名=new 构造器;
Public Cat(String v,int a,Stringc){
Variety=v;
Age=a;
Color=c;
}
Public void show()
{
System.out.println();}
public class Ch02 {
String name;
byte gender;
int age;
Cat cat;
public person(String n,byte g,int a,Cat c){
name=n;
gender=g;
age=a;
cat=c;
}public void show(){
System.out.println();
}
public void show(){
return "品种"+;
}
}
has a的关系人有一只猫
这就是类与类之间的关系
学习时间:
- 上午:7:30-12:00
- 下午:1:30-5:00
- 晚上:6:00-10:00
学习产出:
- 知道了面向对象和面向过程
- 运用 成员变量和局部变量编程 (有待练习)
- 会使用 private关键字(有待练习)
- 运用 构造方法创建对象(有待练习)
边栏推荐
猜你喜欢
随机推荐
Redis6
IDEA如何进行远程Debug
从零开始的循环之旅(下)
filebeat的配置
【无标题】
DOM —— 事件绑定与解绑
双亲委派机制
DOM —— 事件代理
【JS执行机制】
makefile——pattern rule
CSV file with the data read and write 】 【 XLS/XLSX file
DOM —— 元素盒子模型
Based on the SVM regression forecast 】 【 LibSVM realize the prediction of a characteristic data
只出现一次的数字||| —— 哈希映射、异或位运算+分治思想
静态方法的缺失
FIR滤波器设计之窗函数法
数据源,分层开发以及jsp标签总结及相关代码
解决跨域问题的方法 --- JSONP
tab 替换空格
UINIX 高级环境编程杂项之限制