oop思想:
面向对象编程,Object oriented propraming
在Java领域中,有一些说法:
万事万物皆对象 一切皆对象
描述一个事实:任何现实生活中存在的物体,都可以在Java中通过归纳、总结形成类class 、以及对象Object。
类 class:
类是具有相同特征的一些事物的概括,是个抽象概念,根据各个抽象概念,可以造出来具有相同特征的实际物品 。 相当于工厂的模具、孙悟空本体
对象object:
由类创建出来的具有相同特征的实际存在的个体,就是对象。对象是一个具体的,正式存在的东西
学生
实例化:由类创建对象,使用一个关键字:
new
注意事项:
-
类的访问修饰,可以省略的,省略后,访问权限就变为默认的权限(default)。一个类文件中只能有一个带有public 修饰的类,且带有public修饰的类名 必须和文件名相同。
-
一个类文件中可以有多个不带public的类,但是极不推荐这样写
-
类中,不要写任何的语句代码,否则语法报错
四、变量的分类、作用域
回忆一下,变量的定义:
数据类型 变量名 = 变量值;
-
按照变量的数据类型分:
基本类型变量:如 int i =10;
引用类型变量:如 String name = "小张";
-
按照变量所生效的范围分:
全局变量:
-
一般写在类中,整个类中任何地方都可以使用。
-
全局变量可以不用初始化, 根据类型有个默认值,如int默认值是0,double是0.0
局部变量:
-
一般写在方法中,或者形参中,或者for小括号的声明的变量,它的作用域只针对声明变量的那部分代码有效 如:在方法中写,就针对方法后边的那对{}
形参中写,针对形参所在的方法 for的小括号中写,针对for循环的那对{}
-
局部变量,必须初始化赋值之后,才能使用,否则报错
引申: 我的地盘我做主
四、变量的分类、作用域
回忆一下,变量的定义:
数据类型 变量名 = 变量值;
-
按照变量的数据类型分:
基本类型变量:如 int i =10;
引用类型变量:如 String name = "小张";
-
按照变量所生效的范围分:
全局变量:
-
一般写在类中,整个类中任何地方都可以使用。
-
全局变量可以不用初始化, 根据类型有个默认值,如int默认值是0,double是0.0
局部变量:
-
一般写在方法中,或者形参中,或者for小括号的声明的变量,它的作用域只针对声明变量的那部分代码有效 如:在方法中写,就针对方法后边的那对{}
形参中写,针对形参所在的方法 for的小括号中写,针对for循环的那对{}
-
局部变量,必须初始化赋值之后,才能使用,否则报错
引申: 我的地盘我做主
一new就是一个新对象,就在堆区开辟一片新空间
public static void main(String[] args) {
student s1=new student();
System.out.println(s1);
s1.name="张";
s1.age=13;
student s2=new student();
System.out.println(s2);
s2=s1;
System.out.println(s2);
System.out.println(s1.name);
System.out.println(s2.name);
s1.showInto();
s2.showInto();
}
构造方法:
构造方法的语法:
访问修饰符 方法名(){},方法名必须和类名相同
-
jvm在编译执行的时候,会给类自动创建一个无参的构造方法 一旦程序员手动书写了一个构造方法,jvm就不自动创建了
-
构造方法也可以书写多个重载方法
-
普通方法的方法名不要和构造方法的名字相同,他们之间也不构成重载关系
-
构造方法不能直接调用,一般只放在new后边(用来创建对象)
编程规范问题:一般,当我们手动书写了有参构造方法后,都会将无参构造方法写出来
构造方法练习