面向对象就是将现实的事物抽象的方式描绘出来,把现实生活的事物以及关系,抽象成类,然后封装,方便使用就是面向对象(万物皆对象)。
1,面向对象的初步的认识
1,编程语言分为两种编程思想:
面向过程的 和面向对象的
面向过程什么事都自己写从开始到结束用自己的逻辑实现
面向对象:在面向过程的基础上,某些过程不需要自己写通过jdk已经封装好的类进行调用
方法进行实现相对应的功能
两者并没有明显的界限
2,面向对象的两个概念
类:是对一切相似事物的统称.是一个泛泛的概念。可以用来描述事物的特征和行为
对象:就是一个具体的实体。
类和对象的关系:
对象是类的具体的实现,在类下面延伸出来具体对象
在java中先有类 再有对象,类的语法格式
Public class 类名{
定义属性及行为;
}
有了类,然后通过类去创建对象,然后让对象去处理一些专门的事
java对象的格式
类名 对象的名字 = new 类名()
例;
Scanner scanner = new Scanner();
3,创建类的两种格式
一种是定义在同一个类下
例
class Car {
//属性
String kind;//品牌
String color;//颜色
//行为
public void run () {
System.out.println("跑得飞快");
}
}
public class Demo1 {
public static void main(String[] args) {
//下面要写 创建对象(实例化对象)
Car car1 = new Car();
car1.kind = "BYD";
car1.color = "红色";
System.out.println(car1.kind);
System.out.println(car1.color);
car1.run();
}
}
定义在不同的类中
先定义一个类
类的语法格式
Public class 类名{
定义属性及行为;
}
有了类,然后通过类去创建对象,然后让对象去处理一些专门的事
在创建一个带有主函数的的类,在main函数中创建一个java对象
java对象的格式
类名 对象的名字 = new 类名()
例;
Scanner scanner = new Scanner();
4,类和对象的内存分析
咱们可以简单的暂时将java内存区域分为 栈和堆
栈区:存放的局部变量(包含了编译器可知的基本数据类型,和对象引用--》对象的内存地址-》对象的名字)
堆区:保存的是对象的真正的数据,即对象的属性信息
例
5,构造方法【重点】
目的:初始化当前类的对象
就是对属性进行赋初始化值的
1无参构造方法格式:public 类名(){
语句体;
}
2,有参构造方法格式:public 类名(参数){
语句体;
}
注意事项:如果在类中写了有参构造,本身默认无参就会消失
构造方法必须写在声明的类里面,一般写在 属性的下面 方法 的上面
2.没有void关键字 也没有任何的 数据类型返回值
3.方法的名字必须是当前的类名
4.当实例化对象的时候,会调用当前类下面的无参数的构造方法
5.每一个类即使不写构造方法,会默认给你一个无参构造方法,所以直接new 类名()
6.有参构造的目的是直接对属性进行赋值
6,关于有参构造和无参构造的注意事项
1.无参的构造方法可以是一个类自己默认的,但是写了有参数的构造之后,无参数的构造就
没有了
2.构造方法的名字一定要和类名保持一致。其他的成员方法不能和类名一样
3.构造方法没有返回值也没有使用void进行修饰
4.构造方法可以有多个的···············
构造代码块
现在很少用,实例化对象的时候首先调用构造方法
构造代码块在构造方法之前执行,前提必须实例化话出来对象
1语法格式
{
语句体;
}书写位置变量位置下构造方法上