面向对象 oop
初识面向对象
- 属性+方法=类
- 对于描述复杂的事物,为了从宏观上把握、从整体上合理分析,我们需要使用面向对象来分析整个系统。但是,具体到微观操作,让然需要面向过程的思路去处理。
- 面向对象本质就是:以类的方式组织代码,以对象的组织(封装)数据。
- 从认识论角度考虑是先有对象后有类
- 三大特性:封装,继承,多态。抽象
package com.chen.oop.demo1;
public class Demo1 {
//Demo1类
public static void main(String[] args) {
//main方法
}
/*
* 修饰符 返回值类型 方法名(....){
* //方法体
* return 返回值;
*
* }
*/
public String hello(){
return "你好,婵月";
}
public String hello(){
return ;//结方法,返回一个结果
}
public int max(int a,int b){
return a>b?a:b;//三元运算符
}
}
//主函数
package com.chen.oop.demo1;
public class Application {
public static void main(String[] args) {
Application application= new Application();
Demo1 demo1=new Demo1();//实例化demo1对象,调用Demo1类中的方法
demo1.hello();
System.out.println(demo1.hello());
int x= demo1.max(56,25);
System.out.println(x);
}
}
break:跳出switch循环,结束循环。continue:结束依次循环。return:方法结束,返回类型和返回值相同。
方法名:见名知意,驼峰命名法。参数列表:(参数类型,参数名),…可变参数,数组运用可变参数。
package com.chen.oop.demo1;
public class Student {
public String say(){//非静态方法
return "学生说话";
}
public static String say(String name){//非静态方法,name为形式参数
return name+"同学说话";
}
//和类一起加载
public static void a(){
}
//类实例化后才会存在
public void b(){
}
}
package com.chen.oop.demo1;
public class Demo2 {
public static void main(String[] args) {
// 调用非静态方法
//实例化这个类 new
//对象类型 对象名 =对象值;
Student student=new Student() ;
String a= student.say(); //调用非静态方法
System.out.println(a);
// _________________________________________
//类名.方法名
System.out.println(Student.say("征"));//征为实参
}
}
package com.chen.oop.demo1;
//引用传递:对象,本质还是值传递
public class Demo3 {
public static void main(String[] args) {
Perosn person =new Perosn();
System.out.println(person.name);//null
Demo3.change(person);
System.out.println(person.name);//sd
}
public static void change(Perosn perosn ){
perosn.name="sd";
}
}
class Perosn{//定义一个类,有个属性name
String name;
}
- 基本类型作为参数传递时,是传递值的拷贝,无论你怎么改变这个拷贝,原值是不会改变的
- 对象作为参数传递时,是对象在内存中的地址拷贝一份给了参数
类和对象的关系
- 类是一种冲向的数据类型,它是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物
- 对象是抽象概念的具体实例
创建和初始化对象
- 使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及类中构造器的使用
-
一个类即使什么都不写,它也会存在一个方法
-
构造器:
- 和类名相同
- 没有返回值
-
核心作用:
- 使用new关键字,本质是在调用构造器
- 构造器同来初始化值
-
在无参构造器中,无参构造器可以实例化初始值
-
注意点:
- 有参构造器:一旦定义了有参构造,无参就必须显示定义
- Alt+Insert
小结 类与对象
1.类与对象
类是一个模板:抽象,对象是一个具体的实例
2.方法
定义,通用
3.对应的引用
引用类型:基本类型(8)
对象是通过引用来操作的:栈—>堆
4.属性:字段Field成员变量
默认初始化:
数字:0 0.0
char:u0000
boolean:false
引用:null
修饰符 属性类型 属性名=属性值;
5.对象的创建和使用
必须使用new关键字创建对象,构造器Person xiaoming=new Perosn();
对象的属性 xiaoming.name
对象的方法 xiaoming.sleep()
6.类
静态的属性 属性
0.0
char:u0000
boolean:false
引用:null
修饰符 属性类型 属性名=属性值;
5.对象的创建和使用
必须使用new关键字创建对象,构造器Person xiaoming=new Perosn();
对象的属性 xiaoming.name
对象的方法 xiaoming.sleep()
6.类
静态的属性 属性
动态的行为 方法