java是一门面向对象的编程语言,在java中,万事万物皆对象。
面向过程和面向对象
面向过程:分析出实现需求需要的步骤,通过一些方法一步一步实现
面向对象(行为化):把整个需求按照特点,功能划分,将这些存在 共性的部分封装成类(类实例化之后才是对象),让对象去解决问题
Scanner String 是别人给我们创建的对象,事实上我们也能自己创建对象,在开发中,基本上我们会大量的自己创建对象
在java中,面向对象有三大特征:
1、封装
2、继承
3、多态
4、抽象
变量
成员变量(全局变量):把变量直接声明在类里
局部变量:把变量声明在某个方法里
定义一个成员方法:
public:访问权限修饰符 void:没有返回值 run():方法名,标识符 {}:方法体。这个方法要干什么 ():传参数 在声明方法时,括号里的参数,形式参数,形参,可以当做局部变量使用 在调用方法时,真正传入方法的参数,实际参数,实参。 参数可以有多个,中间用逗号隔开 Java中的传参,需要明确数据类型
标识符的命名规则
标识符的命名规则:字母,数字,下划线,美元符号,数字不能开头 1、类名:大驼峰 2、属性名、方法名:小驼峰
返回值的方法
boolean:返回值类型。方法经过一系列的运行过后,要得到一个具体的值 return xxx;类型要匹配
return关键字
1.return关键字终止方法继续执行。 2.返回方法的返回值
访问权限修饰符
public:公有的,公共的。最大,一个工程下任意位置都可以访问 类,属性上,方法上,构造器 protected:受保护的。可以挎包,如果挎包,必须是他的子类 属性,方法,构造器 默认的:友好的。当前包下可以访问 类,属性,方法,构造器 private:私有的,最小。只有在当前类可以用。 属性,方法,构造器
创建对象
创建对象的过程,类的实例化的过程,对象又叫做类的一个实例 对象名的命名规则:小驼峰 创建对象的语法:类名 对象名 = new 类名();创建一个Ch02这个类的对象
Ch02 c = new Ch02();
给车的属性赋值
Car.brand = "丰田";
所有的类都是数据类型,都是引用数据类型
class这个关键字,创建一个类,创建一个数据类型
堆
像car1,car2,·······叫做引用,它是指向内存中的一块区域 ,存放这些对象的空间,我们叫做堆
两块内存空间:
1、栈:变量,基本数据类型
2、堆
引用数据类型的初始值为null
只要看见了new,就不是null,他就有地址
成员方法:
1、方法名不能重复
自己调自己,递归
方法的重载(Overload)
1、方法名相同
2、参数不同(参数的类型,参数的个数,参数的顺序)
3、发生在同一个类里
与返回值类型无关,与访问权限修饰符无关,与方法体无关
方法重载的好处:
为了把功能相似相同的方法用一个名字
例题:计算多个数相加
public class Ch04 {
public static void main(String[] args) {
Ch04 c = new Ch04();
System.out.println(c.a);
}
public void show(){
System.out.println(a);
}
int a = 10;
public int sum(String d,int ... arr){
int result = 0;
if(arr.length < 2){
result = arr[0];
}else {
for (int i : arr) {
result += i;
}
}
return result;
}
public int sum(String d){
return 0;
}
构造器(构造方法)
特点: 1.java在new对象的时候,先看对象所对应的类有没有构造器,有什么样的构造器。 如果没有构造器,则无法创建对象 2.每个类会有一个默认的无参的构造器 3.在对象被实例化时,调用了构造器 4.我们创建对象实际上是通过构造器创建的 5.如果一个类中显式的声明了一个构造器,原来默认自带的无参构造器就失效
语法:
访问权限修饰符( )