java入门心得(面向对象概念)

心得:刚开始学习面向对象编程,必须要理解好每个概念,比如变量分成员变量,局部变量等,这些关系,只有理清楚之后才更好理解吧。加油Heson

1.类和对象:类就是对一类事物描述,概念上定义,以后java项目就是创建项目,然后项目下创建包,包下创建各种类,所以要创建什么类按照需求,就想学生这个类。没有具体到什 么什么名字谁谁谁,只是对学生的描述。而对象就是对类事例化的个体,

Student student = new Student();

大写的Student就是一个类,然后小写的students就是类具体的对象,具体到什么名字等信息。


2.属性和方法

public class Student{

int class;

String major;

public void read(){

}

}

每个类里面有什么?就是有属性和方法,属性是怎么描述这个类,比如学生这个类的属性就可以是班级和专业,除了这些属性当然也可以有年龄之类,所以定义类有什么属性就看项目需求,比如需要研究学生年龄肯定类里面需要年龄属性,然后方法就是这个类可以做什么,就像C语言的函数,只是把函数封装到类,比如学生会读书



3.构造方法

public class Student{

public Student(int class,String major){

this.class = class;

this.major = major;

}

int class;

String major;

public void read(){

}

}

当我们定义出学生这个类,也具有相应属性和方法后,我们需要初始化这个类,就是个这个类创建出具体对象时候,到底具体哪个班和专业要说清楚。怎么说清楚,就是需要构造方法。以下是构造方法特点:

1、构造方法的方法名一定是与类名一样
2、构造方法一定没有返回值
3、如果没有主动声明构造方法,默认创建无参的构造方法
//默认的无参构造方法
public Student() {

}

public Student(int eyes) {
this.eyes = eyes;
}

public Student(int eyes, int hands, int legs) {
//初始化属性值
super();
this.eyes = eyes;
this.hands = hands;
this.legs = legs;
}

ps:这个this先记得是指本身这个类对象,在这里是指学生这个类,什么时候用?当你的属性变量和构造函数输入的变量重复名字时候就需要用。


4.Jvm内存初步了解(也就是程序代码保存在内存,可是什么类型数据保存在内存哪部分)

栈 :方法栈,所有调用的方法都会压入栈,保存局部变量,FILO(First In  Last Out)先进后出的特点

堆 : 对象堆,用来存放动态产生的数据,比如new出来的对象,创建出来的对象里面只保存了成员属性,而不保存成员方法,成员方法在方法区提供给所有的对象共享

常量池 : 一堆常量值

代码段 :用来存放字节码

数据段 : 静态(static)的成员



5.传参方式

public class Student{

int class;  八大基本数据类型变量

String major;  引用变量

public void read(){

}

}

传参传的是什么?是变量。传参方式传到那?到方法。所以我们要知道变量有分基本数据类型变量和引用变量

java的传参方式

1)值传递-基本数据类型的数据传递的是值本身
2)引用传递-传递的是对象的地址值

ps:记得除了八大基本数据类型其他都是引用类型,引用类型保存的是地址,是地址,和C语言指针一样。



6.方法重载

就像我们在玩游戏时候比如拳皇,大招键永远是那个,可是不同的角色放出来的大招肯定不一样,就是角色大招这个方法是固定这个方法,不会按大招必杀技然后放出个小招,但是里面大招内容每个角色是不一样的,这叫做重载

重载三个要素:
1、方法名一致
2、参数不一致(个数、类型、顺序,不包括参数名)
3、返回类型一致或不一致都可以



7.this关键字

当局部变量与成员变量重名时,局部变量优先,成员变量就会被局部变量覆盖使用this解决命名冲突

public class Student{

public Student(int class,String major){//这个叫局部变量

this.class = class;//左边this.class叫成员变量

this.major = major;

}

int class; 这些都是成员变量

String major;

public void read(){

}

}

调用重载的构造方法来避免重复代码
public Smoker(String tools,int age) {
this.tools = tools;
this.age = age;
}

public Smoker(String tools,int age,String name) {
this(tools,age);
this.name = name;
}






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值