1.面向对象
1.1概述
面向对象:
面向对象(Object Oriented)是软件开发方法,一种编程范式。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。
面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。
1.2面向对象和面向过程
面向过程:侧重分步骤
做一件事时,先进行分析,第一步做什么,第二步做什么
面向对象:侧重分模块
做一件事时,分析这件事应该交给谁去做
面向对象优势:可扩展性,可维护性,灵活性,使程序耦合度降低
缺点:性能比面向过程相对较差
1.3构造方法
public class Contructor_01 {
public static void main(String[] args){
//静态属性调用
//类名.静态变量 / 类名.静态方法名
//调用当前类的静态属性,类名可以省略
Contructor_01.m1();
m1();
//成员属性调用
//对象.成员变量 /对象.成员方法(参数)
//加前缀是为了找到
//创建对象
//new:在堆内存创建对象空间
//Contructor_01 c=new Contructor_01();
Contructor_01 c=new Contructor_01();
c.m2();
}
public static void m1(){
System.out.println("静态方法");
}
public void m2(){
System.out.println("成员方法");
}
}
* 构造方法:是每个类都有的,并且用于创建该类的对象
* 如果该类中没有编写的构造方法,那么编译器会自动帮我们生成一个无参构造
* 如果该类中编写了构造方法,不管写的是不是有参,默认的无参构造都不再自动生成
* 所以当我们在写有参构造时,可以手动编写一个无参构造
*构造方法语句:修饰符 方法名/类名(参数列表){方法体}
* 构造方法的修饰符,我们只使用权限控制即可,不能使用static
* 构造方法没有返回值,连void都没有
* 构造方法的方法名必须与类名一致
public class Contructor_02 {
public static void main(String[] args){
//自动调用构造方法
Contructor_02 c=new Contructor_02();
}
public Contructor_02(int i){
System.out.println("构造方法");
}
public Contructor_02(){
System.out.println("构造方法");
}
}
1.4类和对象
对象:对象就是某一个具体的事物
类:描述了这一类事物的属性和特征,进行抽象出的模板
而对象就是类的实现,保存了属性的值
在编程中,通过需求或者现实事物的属性和特征,来定义相关的类
通过不同的属性值;来定义不同的对象
如果对象和对象之间有相同的属性,相同的值,就使用静态变量
如果对象和对象之间有相同的属性,不同的值(可以相同),就使用成员变量
public static void main(String[] args){
Student s1=new Student();
s1.name="张三";
Student s2=new Student();
s2.name="李四";
System.out.println(s1.name);
System.out.println(s2.name);
}
1.5实例化
实例化:
1.加载对应类文件
2.new在堆内存创建空间
3.执行构造方法,对堆内存对象进行初始化
4.构造方法弹栈,并把堆内存地址返回给变量student
1.6对象使用
1.7Bean
就是公有的类,私有化的属性,公共的获取属性的方法(getter/setter),公共的无参构造
1.8常见异常
1.9对象调用静态属性
1.10注释事项
1.10.1静态调用成员
1.10.2传值和传引用
1.10.3区分成员和构造方法