Day11
面向对象(OOP)
面向对象 编程的 本质就是:以类的方式组织代码,以对象的组织(封装)数据 抽象|
-
封装
-
继承
-
多态
从认识轮角度考虑是先有对象后有类。对象,具体的事物,类,是抽象的,是对对象的抽象 从代码运行角度考虑是先有类后有对象。类是对象的模板
方法的加深和回顾
方法的定义
修饰符
返回类型
break和return的区别:break跳出循环,return结束方法,返回一个结果 方法名:驼峰原则,见名知意
参数列表
参数类型,参数名,(。。。)
异常抛出
疑问,后面详解
定义一个方法
修饰符 返回值类型 方法名(。。。){ }
//方法体
return;
1.需要一个public
2.需要一个返回值的类型
3.方法名
4.方法的参数
方法的调用
静态方法
加了static,通过类名.方法名可以直接调用
非静态方法
不加static,调用之前需要实例化(即运用new关键字 )
package com.OOP;
public class Demo02 {
public static void main(String[] args) {
//静态方法:加了 static,然后通过 类名.方法名 就可以直接调用
Demo01.max(2,3);1
//动态方法:没有加static
int max = new Demo01().max(2, 4);//new Demo01().max(2,3);
}
}
形参和实参
值传递
java都是值传递:如下; 由于java都是 值传递 ,所以在调用下方之后输出的仍然是1
package com.OOP;
public class Demo03 {
public static void main(String[] args) {
int a=1;
System.out.println(a); //a=1;
Demo03.change(a);
System.out.println(a); //a=1;
}
public static void change(int a){
a=10;
}
}
引用传递
package com.OOP;
//引用传递:对象,本质还是值传递
public class Demo04 {
public static void main(String[] args) {
Person person = new Person();
System.out.println(person.name); //null
Demo04.change(person);
System.out.println(person.name);
}
public static void change(Person person){
//person是一个对象,指向的是 》》》Person person= new Person();这是一个具体的人们可以改变属性
person.name="dadashisb";
}
}
//一个类里面只能有一个 public class,但是可以有多个class
//再次定义了一个 Person类,有一个属性:name
//
class Person{
String name; //null
}
注意值传递与引用传递的区别
为什么上面值传递输出的1,而不是10 下面输出的是dadashisb,而不是null
this关键字:
类和对象的关系
类是一种抽象的数据类型,他是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物 eg: 生活中是动物,植物,手机,电脑等 代码中是:Person类,Pet类,Car类等等,这些类都是用来描述/定义某一类具体的事物应该具备 的特点和行为
对象是抽象概念的具体实例
创建类 ,创建方法,调用方法
public static void Person(int a;intb){
//此为静态方法,可直接 类名.方法名 调用;若没有static,则需要 实例化 即利用 new 关键字
}
创建和初始化对象
使用new关键字创建对象 注意事项: 在使用new关键字光剑的时候 ,除了分配内存空间 之外,还会给创建好的对象进行默认的初始化以及类中构造器的调用
类的构造器
也称构造方法,是在创建对象时必须要调用的,并且构造器有一下两个特点: 1.必须和类名字相同 2.必须没有返回值,也不能写 void
类与对象的创建

package com.OOP.Demo02;
//学生 类
public class Student {
//一个 类里 只有属性和方法
//属性
String name;//null
int age; // 0
//方法
public void study(){
System.out.println(this.name+"在学习");
}
}
package com.OOP.Demo02;
public class Application {
//一个项目 应该只存在 一个 main方法
public static void main(String[] args) {
//类是抽象的,需要实例化,我们需要在此(main方法)进行实例化
//类实例化之后,会返回一个自己的对象
// student对象就是一个Student类的具体实例
Student student = new Student();
Student xiaoming = new Student();
Student xiaohong = new Student();
xiaoming.name="小明";切
xiaoming.age=3;
System.out.println(xiaoming.name);
System.out.println(xiaoming.age);
xiaohong.name="小红";
xiaohong.age=3;
System.out.println(xiaohong.name);
System.out.println(xiaohong.age);
}
}
构造器详解:
构造器: 1.必须和类名字相同 2.必须没有返回值,也不能写 void
alt+insert会生成构造器
构造器走完才会生成对象
构造器 作用:
-
使用 new关键字,必须要有 构造器(本质是调用 构造器)
-
用来初始化值
构造器总结
构造器存在特点: 和类名相同 没有返回值
作用: new:本质是在调用构造器 定义一个有参构造之后,如果想继续使用无参构造,就必须显示的定义一个无参构造(即手打出来);
alt+insert会生成构造器
浙公网安备 33010602011771号