目录
1 类和对象
2 类的属性和方法
2.1 属性
2.2 方法
3 对象的创建和使用
4 变量
成员变量
局部变量
引用
构造方法
重载:
方法调用
1 类和对象
类: 对对象的抽象,抽象出像的部分,叫做class
对象: 是具体的事物,叫做Object instinstance
对象和类的关系:特殊到一般,具体到抽象
类可以看成一类对象的模板,对象可以看成该类的一个具体实例。
对象是java 程序的he核心,在java程序中“万事万物皆对象”
2 类的属性和方法
所有类定义的时候可以添加属性和方法,但是不是必须要写的
一个java文件中可以定义N多个class,但是只能有一个public class并且public class的类名跟文件名保持一致
2.1 属性
field,或者叫做成员变量。
用于定义该类或该类对象包含的数据或者静态属性。
作用范围是整个类体。
在定义的时候,可以对其初始化或者不初始化,不初始化的时候,会有默认de的初始化值。
格式:
[访问修饰符] 数据类型 属性名称 = 值;
2.2 方法
用来表示行为。
格式:
[访问修饰符] 返回值类型(任何类型) 方法名称(形参列表){
逻辑代码
}
注意:
1、方法的访问修饰符可以不写
2、方法可以有返回值,也可以没有,void表示没有返回值的意思
3、形参列表可以有,也可以没有
4、java中方法的传参都是值传递
3 对象的创建和使用
对象的创建
类名 对象名 = new 类名();
对象的使用
使用对象的时候可以通过 对象名称.属性 或者 对象名称.方法 来使用属性和方法
public class Student {
//属性的定义
int stuNumber;
String name;
int age = 20;
//方法的定义
void study(){
System.out.println("我正在学习");
}
void eat(String food){
System.out.println("我在吃"+food);
}
public static void main(String[] args) {
//创建对象
Student student = new Student();
//使用属性
System.out.println(student.name);
System.out.println(student.age);
System.out.println(student.stuNumber);
//修改属性值,给属性赋值
student.name="张三";
student.age=40;
student.stuNumber=20190818;
System.out.println(student.name);
System.out.println(student.age);
System.out.println(student.stuNumber);
//调用方法
student.study();
student.eat("apple");
}
}
4 变量
成员变量
定义在方法外,类内的变量叫做成员变量(全局变量) 放在堆内存里面
成员变量包含初始值:int 默认值 0 String 默认值 null boolean 默认值false
作用域:整个类体内
局部变量
定义在方法中的变量称之为局部变量 放在堆内存里面
作用域:从定义的位置开始到整个方法结束
局部变量不包含默认值,如果没有使用当前变量的话,可以不赋值
注意:局部变量只能在当前方法中使用,其他地方无法使用
public class VarDemo {
//成员变量
int age = 20;
public void test(){
System.out.println(age);
age = 10;
System.out.println(age);
int age = 30;
System.out.println(age);
}
public void show(){
//局部变量
int a ;
String name = "zhangsan";
System.out.println(age);
}
public static void main(String[] args) {
VarDemo vd = new VarDemo();
System.out.println(vd.age);
vd.test();
System.out.println(vd.age);
}
}
5 引用
Java中的对象和数组是通过引用对其操作的.
引用可以理解为一种受限的指针
指针是可以与整数做加减运算的,两个指针之间也可以进行大小比较运算和相减运算。引用不行,只能进行赋值操作
引用就是一个变量或对象的别名(引用的本质是一个对象);指针是一个段内存空间的地址(指向存储一个变量值的空间或一个对象的空间)
6 构造方法
创建对象的时候默认会调用构造方法来创建对象,(在堆中开辟空间),可以完成成员变量的某些初始化操作
构造方法的语法:
方法名称:构造方法的方法名称必须跟类的名称保持一致
访问修饰符:
形参:可以用户自定义添加,跟方法的普通参数一样
方法体:完成对象的初始化功能
返回值:没有返回值
注意:
1、创建完类之后,如果没有手动调用构造方法,会有一个默认的无参的构造方法供调用
2、当用户自定义了构造方法之后,默认的无参构造方法就不能够使用了,必须要手动定义无参构造方法
3、同一个类中可以包含多个同名的构造方法
重载:
在一个类中可以包含多个重名的方法,但是注意方法的参数列表不能相同
三个方面的不同:
参数的个数不同
参数的类型不同
参数的顺序不同
注意:
一般构造方法都会进行重载(一个类中可能包含多个属性值,当只需要给部分属性初始化的时候需要调用不同的构造方法)
public class Teacher {
String name;
int age;
// 无参构造方法
public Teacher(){
}
// 重载构造方法
public Teacher(String xname){
System.out.println("one argument");
name = xname;
}
// 重载构造方法
public Teacher(String xname,int xage){
System.out.println("two argument");
System.out.println("new......");
name = xname;
age =xage;
}
public void teach(String a,int b){
}
public void teach(int b,String a ){
System.out.println("上课");
}
public static void main(String[] args) {
Teacher teach = new Teacher();
teach.name="hu";
teach.age=18;
System.out.println(teach.name);
System.out.println(teach.age);
}
}
7 方法调用
形参和实参:
定义方法的参数是形式参数
调用方法所传的参数是实际参数
调用方法的时候要求参数个数相同,类型兼容
参数传递:
基本数据类型的传递:
无法通过方法调用改变变量的值
引用数据类型的传递:
可以通过方法调用改变变量的值