目录
什么是面向对象?
首先一点,面向对象不是一种技术,它是指导我们编程的一种思想,这种思想的核心就是“拿来主义”(当我们需要解决某一项问题时,我们需要去思考解决这个(类)问题的工具,我们要去找这个工具)也就是去找能解决某一需求的类,当然了,现在处于学习阶段,我们都要自己去创造这个工具,创建我们需要的类。
1、类和对象
1.1、什么是类?什么是对象?
类是java编程中的基本单元;把具有相同行为和属性的事物归为一类;对象就是类的具体实现。举个例子,蛋糕师现在要做一个小熊饼干,类就是制造这个小熊饼干的模具,对象就是制造出来的小熊饼干。
1.2、对象的创建方式?
语法: 数据类型 对象名 = new 构造方法。
1.3、对象的使用
我们在类里面定义了多个变量和多个方法,这些变量和方法怎么使用呢?就是通过对象来调用的,类写好后定义一个实例对象来使用。
2、成员变量和局部变量
2.1、什么是成员变量?
成员变量:成员变量也就是全局变量它还以叫做属性。
2.2、什么是局部变量?
局部变量:局部变量就是定义在方法体中的变量。
2.3、成员变量和局部变量有什么区别?
1、类中的位置不同
成员变量在类中方法外定义,局部变量在方法内或者方法声明上(形参)定义。
2、内存中位置不同
成员变量处于堆内存,局部变量处于栈内存。
3、生命周期不同
成员变量随着对象的存在而存在,随着对象的消失而消失,局部变量随着方法的调用而存在,随着方法的调用完毕而消失,这里需要注意一点,局部变量有时候在循环的初始化语句中和循环体里面定义,这里的局部变量就随着循环开始而存在,循环结束而消失。
4、初始化值不同
成员变量未手动赋初值可以进行运算,因为系统会给成员变量赋相应的数据类型的默认初值,而局部变量必须赋初值后才可参与运算。
3、作用域修饰符
3.1、作用修饰符有哪些?
public、protected、Default(friendly)、private;
3.2、作用范围分别为?
首先把作用范围分为同一个包内和不同的包内,在同一个包内时,public修饰的方法可以被当前类、子孙类、外部类调用,protected修饰的方法可以被当前类、子孙类、外部类调用,private修饰的方法只能被当前类调用;不在同一个包时,public修饰的方法同样可以被当前类、子孙类、外部类调用,protected修饰的方法就只能被当前类和子孙类调用了,外部类就调用不了了,private修饰的方法没区别,照样是只能被当前类调用。
4、this关键字
4.1、this关键字是什么?
this:代表所在类的对象引用;方法被哪个对象调用,this就代表哪个对象。这里可能不太太好理解,看一个简单的例子:
public class Test {
int age=15;
public void add(int x){
int age = 18;
System.out.println("小明长大了"+x+"岁,现在"+(age+x)+"岁了");
}
}
这里的(age+x)使用的是哪个age呢,是全局变量的那个age还是局部变量的那个age呢,创建一个对象给它运行一下啊,传入1,输出结果为19,很显然这里使用了局部变量的age,那我要如何使用全局变量里面的那个age呢?这时候this的作用就体现出来的了
public class Test {
int age=15;
public void add(int x){
int age = 18;
System.out.println("小明长大了"+x+"岁,现在"+(this.age+x)+"岁了");
}
}
这上面这段代码相比于前面那段代码就是多了一个this,这时再运行,结果就是16了。
5、构造方法
5.1、构造方法是什么?
构造器也叫构造方法,用于对象的初始化。构造器是一个创建时被自动调用的特殊方法,目的时对象的初始化。构造器的名称应与类一致。Java通过new关键字来调用构造器,从而返回该类的实例,是一种特殊方法。
5.2、构造方法有哪些特点?
构造器通过 new 关键字调用;
构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类),不能在构造器里使用 return 返回某个值;
如果我们没有定义构造器,则编译器会自动定义一个无参的构造方法。如果已定义 则编译器不会自动添加;
构造器的方法名必须和类名一致。