Java Day8 小结
查漏补缺:
1.面向对象的设计原则:
不断地创建对象,使用对象,指挥对象做事情
3.面向对象的思想特点:
1)更符合生活中的思想行为习惯
2)化繁从简
3)角色变化:从执行者变为指挥者
3.类:描述一组属性和行为的集合
Java最基本的单元为类
今日重点小结:
一.局部变量和成员变量的区别?
1)在类中的位置不同
成员变量:成员位置—在类中,方法外定义的变量
局部变量:在方法定义中,或者方法声明上的变量
2)在内存中的位置也不同
成员变量:在堆内存中
局部变量:在栈内存中
3)生命周期
成员变量:随着对象的创建而存在,随着对象的回收而消失
局部变量:随着方法调用而存在,随着方法的调用完毕而消失
4)初始化不同
成员变量: 跟对象相关的,描述一个对象的属性(成员变量存在一个系统默认初始化),当然也可以直接赋值
局部变量: 在使用之前,必须初始化,否则编译不通过
二.Java内存分配那几个部分
堆(Heap): new出来的东西
栈(Stacks):存一些局部变量
方法区(MethodArea):class文件,static文件 [字节码文件]
运行时常量池(RuntimeConstant Pool)
本地方法区(NativeMethod Stacks)
PC Register(PC寄存器)
三.Student s = new Student(); 内存方面表述 :
对Student类在栈中创建一个对象s并在堆中为s开辟一个空间
四.参数类,调用情况
形式参数分别为基本类型和引用类型的不同情况?
基本类型作为形式参数传递
引用数据类型是一个具体的类 ,实际参数传递的时候,需要传递该类的地址值引用
五.匿名对象( 类中类的调用 )
注: 只使用一次
格式: //匿名对象的方式
sd.method(new Student()) ;
//全部匿名对象方式处理
new StudentDemo().method(new Student()) ;
六.private ,this ,封装
1.Private :私有的,无法被访问的
作用: 是数据的安全性提高,并减少容错率
注:外界不能直接访问,通过公共方法访问(类中访问)
2.this :代表当前类的地址值引用
作用:区别成员变量和形式参数
3.封装: 细节隐藏
举例:import java. util. Scanner;
class Demo{
public static void main(String[]args){
Scanner sc= new Scanner(System.in);
System. out. println(“请输入长:”);
int a= sc. nextInt();
System.out.println(“请输入宽:”);
int b=sc. nextInt();
JS js=new JS();
//使用公共的setXXX()/getXXX()方法
js.setWide(b);
js.setHigh(a);
js. area();
js. perimeter();
System.out. print(“面积为:”+js. area()+“周长为:”+js. perimeter());
}
}
class JS{
private int wide ;
private int high;
//赋值
public void setWide(int wide){
this.wide =wide;
}
// 获取
public int getWide(){
return this.wide;
}
public void setHigh(int high){
this.high =high;
}
public int getHigh(){
return this.high;
}
public int area(){
int s=wide*high;
return s;
}
public int perimeter(){
int l =(wide+high)*2;
return l;
}
}
注: 当成员名与局部变量名相同时,要打印,采用 就近原则