一、面向对象
对象::用类创建出来的就是对象(具体的事物)
面向对象:重点在对象,我该找谁干什么。面向对象相当于是事物的指挥者。
面向对象的好处:
1.将复杂的问题简单化
2.从事务的执行者转化为事务的指挥者
3.它是一种思想,更贴近人得思维
类和对象:
java中 最基本的单位就是类
类:对抽象事物的描述(模板)
对象:用类创建出来的就是对象(具体的事物)
创建一个类
关键词 class 类名(大驼峰)
public class Demo01{}创建一个对象
Student student = new Student();
Student student 是对一个Student对象的引用(保存对象的地址)
Student student = new Student(); // 使用对象名.属性名 进行赋值和取值 student.name = "王五"; student.age = 22; student.gender = "男"; //调用成员方法 对象名.方法名() student.eat(); //哪那个对象调用的该方法 打印的就是那个对象的属性 student.sayHi();
class Student{ //属性(成员变量 实例变量) //书写位置:类中 方法外 //行为(方法) 跟函数一样 //书写位置:类中 //没有给成员变量初值 成员变量有默认初始化 根据类型不同初始化值不同 String name; int age; String gender; //成员方法/实例方法 public void eat() { System.out.println("吃饭"); } public void sleep() { System.out.println("睡觉"); } public void playGame(String game) { System.out.println("玩"+game); } //介绍自己的方法 public void sayHi(){ System.out.println("姓名:"+name); System.out.println("年龄:"+age); System.out.println("性别:"+gender); } }
二、成员变量与局部变量
区别:
1.书写位置
成员变量:类中 方法外
局部变量:方法中或方法上
2.在内存中表现
成员变量:堆内存中
局部变量:栈内存中
3.生命周期
成员变量:随着对象进入堆内存中创建 随着对象销毁而销毁
局部变量:随着方法的调用而入栈 随着方法的结束而销毁
4.作用域
成员变量:整个类中
局部变量:方法中
5.初始值 成员变量:跟堆内存一样 默认初始值
局部变量:默认没有初值 使用时必须初始化才可以使用
成员变量:
class Car{ // 声明成员变量的时候,可以给初值 String name; // 车名 String displacement; //排气量 String color; //颜色 }
局部变量:
public void startCar(int a) { // 在方法中的变量是局部变量 // 在方法上的变量也是局部变量 int num = 10; }
三、基本数据类型和引用参数类型
public class Demo04 { // 参数是基本数据类型 public static void fun1(int a) { System.out.println(a); a = 10; } // 参数是引用数据类型 // 要什么类型 就给什么类型 public static void fun2(Person p) { p.name = "李四"; p.age = 24; } public static void main(String[] args) { int a = 100; fun1(a); System.out.println(a); Person p1 = new Person(); p1.name = "王五"; p1.age = 28; fun2(p1); p1.sayHi(); } }
四、匿名对象
匿名对象:没有名字的对象
1.在方法传参数的时候使用
setNameAndAge(new Person(), "jiun", 20);
2.只调用一下方法(不赋值的情况下)
new Person().fun();五、Java Bean 对象
java bean 对象(java 实体类创建出来的对象)
1.声明成员变量 都需要 私有化
2.给每一个成员变量提供 set/get方法
3.必须提供无参的构造方法
public class Person { private String name; public Person(){ } public void setName(String name) { this.name = name; } public String getName() { return name; } }this关键字
关键字 this 代表的是本类的对象
this.成员变量获取本类的成员变量
this.成员变量="";给本类的成员变量赋值
this.成员方法调用本类的成员方法
谁调用了这个方法谁就是this
this在内存中的表现:
构造方法:对 对象的成员变量进行初始化
写法:
1.没有返回值类型(void也不用写)
2.构造方法方法名要与类名完全一致
class Pen{ public Pen() { System.out.println("我是Pen类的无参构造方法"); } }
类中的书写顺序
1.成员变量
2.构造方法(无参 有参)
3.成员方法
4.set/get方法