本贴为持续更新贴!内容附带大量图文和练习,供大家学习时参考。本贴主要面向对象,是Java基础中最为重要的内容了,快来认真学习吧!
更多资料和内容尽在:
码牛云课堂Java霸牛老师(微信):mnykt8080;
码牛云Java技术交流QQ群:1142264605;
1. 类和对象
1.1 面向对象概述
面向过程:当完成一个需求时,需要自己一步一步去操作实现。
面向对象:当完成一个需求时,找一个已经具有改功能的对象帮我们完成。
1.2 概述:
java是面向对象的程序设计语言,面向对象的程序设计过程中有两个重要的概念: 类和对象。
1.3 类和对象的理解
类:是对具有相同的属性(特点)和行为(功能)一类事物的描述,是抽象的。类似于设计图纸。
对象:是真实存在的个体,是类的一个示例。
类与对象的关系:
类是对象的模板,对象是类的具体示例。
可以根据类创建一个或者多个对象。
1.4 类的定义
类是由属性和行为两部分组成
属性:对应到java代码中就是成员变量(类中方法外的变量)
行为:对应到java代码中就是方法。
类的定义格式
public class 类名 {
// 成员变量
数据类型 变量1;
数据类型 变量2;
…
// 成员方法
方法1;
}
示例代码:
package com.mnyketang;
/*
类是由属性和行为两部分组成
属性:对应到java代码中就是成员变量(类中方法外的变量)
行为:对应到java代码中就是方法。
定义一个学生类来描述学生这一类事物
属性:姓名、年龄
行为:睡觉、学习
对应到java代码中
成员变量
String name;
int age;
成员方法
sleep()
study(String name)
*/
public class Student {
//成员变量
String name;//姓名
int age;//年龄
//成员方法
public void sleep(){
System.out.println("我就是爱睡觉");
}
public void study(String name){
System.out.println("我就是爱学习" + name);
}
}
1.5 对象的创建
通常情况下我们是通过该类的对象来使用一个类的。所以需要创建类的对象。
创建对象格式:
类名 对象名 = new 类名();
有了对象就可以使用类了,类里边有成员属性和成员方法,也就是可以通过对象访问类的成员属性和方法。
格式:
对象名.成员变量
对象名.成员方法();
示例代码
package com.mnyketang;
/*
通常情况下我们是通过该类的对象来使用一个类的。所以需要创建类的对象。
创建对象格式:
类名 对象名 = new 类名();
有了对象就可以使用类了,类里边有成员属性和成员方法,也就是可以通过对象访问类的成员属性和方法。
对象名.成员变量
对象名.成员方法();
*/
public class Demo01 {
public static void main(String[] args) {
//创建一个学生对象为stu1
Student stu1 = new Student();
//访问成员变量 对象名.成员变量
stu1.name = "java小王子";//给成员属性name赋值
stu1.age = 18;//给成员属性age赋值
System.out.println(stu1.name);
System.out.println(stu1.age);
//调用成员方法 对象名.成员方法();
stu1.sleep();
stu1.study("java");
}
}
2.对象内存图解
2.1 一个对象内存图
2.2 多个对象内存图
总结:
只要new就会在堆内存中开辟新的空间,成员变量存放在各自堆内存中,成员方法存放在方法区,对象共享。
2.3 多个对象指向相同内存图
总结
把一个对象引用赋值给另一个对象引用,此时两个对象指向相同的内存空间,其中一个修改成员变量的值,另一个对象访问时就是修改后的值。
3. 成员变量和局部变量
区别
定义位置不同:成员变量(类中方法外)局部变量(方法内部或方法声明上)
内存中位置不同:成员变量(堆内存)局部变量(栈内存)
生命周期不同:
成员变量(随着对象的存在而存在,随着对象的消失而消失)
局部变量(随着方法的调用而存在,醉着方法的调用完毕而消失)
初始化值不同:成员变量(有默认初始化值)局部变量(没有默认初始化值,必须先定义,赋值才能使用)