概述
IDEA自动生成一个标准的类
生成GetterSetter:Code -->Generate选择Getter and Setter,按Ctrl选中Getter、SetterOK就好啦
生成无参数的构造方法:选择Constructor中的Select None就可以创建无参数的构造方法啦
生成全参数的构造方法:按Ctrl选中局部变量OK就好啦
今日重点
实现功能时,只关心已具有该功能的对象,而不是关心步骤处理过程
三大基本特征:封装、继承、多态
类型和对象
类:一组相关##属性##和##行为##的集合,抽象的
属性:该事务状态信息,是什么
行为:事务能够做什么
对象,一类事物的实例,具体的
类是对象的模板,对象是类的实例
类的定义和使用
使用一个类:
1.导包 import.包名.类名,相同包内省略
2.创建,格式:类名称 对象名 =new 类名称();
3.使用:①使用成员变量:对象名.成员变量②使用成员方法:对象名.成员方法
注意事项:成员变量没有赋值,会有默认值
public class UseStudent {
public static void main(String[] args) {
Student stu=new Student();
//成员变量
System.out.println(stu.age);
System.out.println("============");
//成员方法
stu.eat();
System.out.println("============");
//成员变量赋值
stu.name="猪八戒";
stu.age=18;
System.out.println(stu.age);
System.out.println(stu.name);
}
}
一个对象的内存图
理解压栈、弹栈
程序执行,先进栈
创建对象,new出来的都保存在堆当中
堆当中的成员从方法区来,成员方法保存的是方法区的成员方法地址
成员自己的地址赋值给栈中存储
根据地址可以找到对象
调用方法(方法区地址),方法执行先进栈,执行完出栈
main方法执行完出栈
两个对象使用同一方法内存图
第二个对象的方法仍然指向方法区同一块空间
两个引用指向同一对象的内存图
类名称 类名 = 旧的类
不new就会指向堆中同一区域,不补图了,脑补吧
使用对象类型作为方法的参数
当一个对象作为参数,传递到方法中,实际传递的是对象的地址值
对象的地址存储在堆当中,在new时创建的
使用对象类型作为返回值
当一个对象作为方法的返回值时,返回的是对象的地址
对象的地址存储在堆当中,在new时创建的
成员变量和局部变量的区别
定义的位置不一样:成员变量:方法外部,直接写在类当中;局部变量:方法内部
作用域不一样:局部变量作用域方法;成员变量作用域整个类
默认值不一样:局部变量没有默认值,使用必须赋值方法的参数就是局部变量
内存位置不一样:局部变量:位于栈;成员变量:位于堆区
生命周期不一样:局部变量:随方法进栈而生,方法出栈而终;成员变量:随对象创建而生,对象被回收而终(Java程序员无法控制的)
面向对象三大特征——封装
体现:①方法就是一种封装;②关键字private也是一种封装
封装就是将细节信息隐藏起来,对外界不可见
private关键字作用和使用
一旦使用private进行修饰,那么本类中仍然可以随意访问,但是超出本类范围就会报错!!!
解决:使用专门成员方法,使用间接方法,用于获取、设置,即定义一对Getter/Setter方法。
优点:专用Getter/Setter方法,,可以阻止不合理赋值,提高代码安全性
注意事项:①getXxx或者setXxx命名②Getter方法不能有参数,返回值类型与成员变量对应③Setter方法不能有返回值,参数值类型与成员变量对应④bollean值Getter是isXxx,setter不变
this关键字的作用“重名区分”
当方法的成员变量和局部变量重名的时候,会根据“就近原则”适应局部变量
如需访问成员变量,就加关键字this
通过谁调用的方法,谁就是this
构造方法
专门用来创建对象的方法,当我们使用关键字new时,就是在调用构造方法
格式:public 类名称(参数类型 参数名称){方法体}
注意事项:①构造方法名称和类名必须完全一样,注意大小写②构造方法不写返回值类型,连void都不写③构造方法不能产生返回值④如果没有写构造方法,编译器会默认赠送一个构造方法,没有参数、方法体什么都不做。⑤一旦写了至少一个构造方法,编译器则不再赠送构造方法(涉及重载)
构造方法:
ublic class Dog {
private int age;
private String color;
public Dog(){
System.out.println("构造方法已经执行!!!");
}
//重载有参数的构造方法
public Dog(int age,String color){
System.out.println("第二个构造方法已经执行!!!");
this.age=age;
this.color=color;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void setColor(String color){
this.color=color;
}
public String getColor(){
return color;
}
}
使用构造方法
package Day2;
public class TestDog {
public static void main(String[] args) {
Dog dog=new Dog();//new以后的就是构造方法
Dog dog1=new Dog(12,"black");
dog1.setAge(13);
System.out.println("小狗"+dog1.getAge()+"岁了,颜色是"+dog1.getColor());
}
}
定义一个标准的类
标准的类组成成分
1.所有成员都用private关键字修饰
2.为每一个成员变量编写一对Setter/Getter
3.编写一个无参数的构造方法
4.编写一个全参数的构造方法
生成一个标准的类
动手写一下成员变量
IDEA快捷键生成就好啦
END
最后
以上就是小巧百褶裙为你收集整理的Java补课机构_JAVA补课-DAY2:面向对象思想的全部内容,希望文章能够帮你解决Java补课机构_JAVA补课-DAY2:面向对象思想所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复