网站站外推广的内外链接怎么做,.asp网站开发,深圳宝安区最新通告,九江企业网站建设封装
//用来描述一类事物的类#xff0c;专业叫做#xff1a;javabean类
//在javabean类是不写main方法的//一个java文件中可以定义多个类#xff0c;且只能一个类是public修饰#xff0c;而且public修饰的类名必须成为代码的文件名
://在类中一般无需指定初始化值 存在默…封装
//用来描述一类事物的类专业叫做javabean类
//在javabean类是不写main方法的//一个java文件中可以定义多个类且只能一个类是public修饰而且public修饰的类名必须成为代码的文件名
://在类中一般无需指定初始化值 存在默认值//引用数据类型类接口数组String 初始化是NULLd//类名的首字母建议大写驼峰
封装对象代表什么就得封装对应的数据并提供数据对应的行为
例子门关门圆画圆
封装的好处有很多可以现成的已经封装的类我们可以直接调用这些现成的类可以极大方便与我们编写代码
Private关键字
是一个权限修饰符可以修饰成员被private修饰的成员只能早本类中才能访问
格式化代码ctrl alt l 注意需要关闭QQ才能进行这个操作
对于私有属性的成员变量往往需要一个set和get搭配使用才能对私有属性的变量进行赋值
下面是一个具体例子 自己定义一个类女朋友类型
public class GirlFriend {//属性private String name;private int age;private String gender;//针对每一个私有变量都需要提供get和set方法//set方法给成员赋值//get对外提供成员变量的值//作用给成员变量name赋值public void setName(String n){name n;}//作用对外提供方属性public String getName(){return name;}//age//setage:给成员变量age进行赋值的//getage对外提供成员变量age的值public void setAge(int a) {if (a 18 a 50) {age a;} else {System.out.println(非法数据\n);}}//get获取public int getAge() {return age;}//genderpublic void setGender(String g){gender g;}public String getGender(){return gender;}}女朋友类型的TEXT:
public class GirlFrindText {public static void main(String[] args) {//创建女朋友GirlFriend gfl new GirlFriend();//赋值操作gfl.setName(郑美玲);gfl.setAge(18);gfl.setGender(女);System.out.println(gfl.getName());System.out.println(gfl.getAge());System.out.println(gfl.getGender());}
}不难发现对于私有私有类型的成员变量我们需要使用类里面的方法进行赋值和得到答案
所以就需要set赋值和get提供值搭配使用 小结
1.private关键字是一个权限修饰符
2.可以修饰成员变量
3.被private修饰的成员只能在本类中才能访问
4.针对private修饰的成员变量如果需要被其他使用需要提供相应的操作set和get搭配使用
5.提供”setXxx(参数)”方法用于给成员变量赋值方法用public修饰
6.提供”getXxx(参数)”方法用于获取成员变量的值方法使用public修饰
this关键字
成员变量和局部变量
如果我们把变量定义在方法里面 那么这个变量就叫做局部变量
如果我们把变量定义在类里面 那么这个就叫做成员变量
如下面这个
public class GirlFrind{private int age;//成员变量public void method(){int age 10;//局部变量System.out.println(age);}
}这个代码并没有错误这里的age的值究竟取决于谁呢 这里讲究一个就近原则打印的这个age谁离它近 那么这个age就是谁的值很显然这个age离局部变量age 10更近所以这个age的值就是10
如果我就是想要打印成员变量的值 那么我们就需要在打印语句中加上this.age 这个时候打印的就是成员变量的值后面会讲this在内存中的储存方式
public class GirlFrind{private int age;//成员变量public void method(){int age 10;//局部变量System.out.println(this.age);}
}下面这个是使用了this关键字进行的操作
public void setAge(int age) {if (age 18 age 50) {this.age age;} else {System.out.println(非法数据\n);}
}这个是将我们接受到的值赋给成员变量age。
小结1.就近原则
System.out.println(age);
System.out.println(this.age); 构造方法
作用在创建对象的时候给成员变量初始化的操作。 特点
方法名和类名相同大小写一致没有返回值类型没有具体得返回值不能有return 带回结构数据 执行时机
创建对象得时候由虚拟机调用不能手动调用构造方法每创建一次对象就会使用一次构造方法 犯下的错误对于set类函数我们使用这个方法的时候必须要使这个方法的类型为void \
然后我们使用get类函数我们需要将这个方法的类型设置为变量自己的类型
System.out.println(stu1.setAge(19));
这个输出函数里面的类型是void类型我竟然将这个函数里面的直接放在了输出函数里面了
当我们没有构造方法的时候系统会自动给我们初始化一个构造方法这个构造方法没有含有任何的参数和变量 当我们定义了构造方法系统将不再提供默认的构造方法 当我们将自定义的无参构造的构造方法给注释掉后然后再在主类中的main的参数去掉后就会发现程序已经报错了所以当我们当我们定义了构造方法系统将不再提供默认的构造方法。 所以这个我们自己定义一个无参构造是很有必要的。 构造方法的重载
带参构造方法和无参构造方法两者方法名相同但是参数不同这就叫做构造方法的重载 有点类似与C里面的sort函数可以含多个变量
推荐使用方法
无论是否使用都手动书写参数构造方法和带全部参数的构造方法 小结
创建对象的时候由虚拟机自动调用给成员变量进行初始化的无参的构造方法初始化对象的时候成员的数据均采用默认值 有参的构造方法在初始化对象的时候可以为对象进行赋值任何类定义出来默认就自带了无参构造器写不写都有 标准的javabean类
用来描述一类事物的类专业叫做javabean类 1.类名需要见民知意
2.成员变量需要使用private修饰
3.提供至少两个构造方法第一个无参构造方法第二个有参构造方法
4.成员方法提供每一个成员变量对应的setXxx(),getXxx() 如还有其他行为也要写上 除此之外我们可以使用两个快捷方式生成标准的javabean
第一个就是
第一个就是alt insert
或者alt fn insert除了这个我们还可以使用一个插件自动生成标准的javabean,只需要在鼠标右键进行选择就可以了 或者是alt shift . 这个样也可以生成一个标准的javabean 对象储存图
Java内存分配1.栈 2.堆 3.方法区 4.本地方法区 5.寄存器 一个对象的内存图就以student s new Student();为例
电脑会做这些事情
加载class文件申明局部变量在堆内存中开辟一个空间默认初始化显示初始化构造方法初始化将堆内存中的地址赋给左边的局部变量 我们需要知道的是当有new这个关键字时就意味着在堆内存中开辟了一块内存这个内存会从方法区提取相关的模板然后并在相依的地址名字 ‘.’地址所指向的属性也就是具体的数据 所以我们可以总结出一点就是每当我们看到一个new的时候就代表会在对区域开辟一个全新的空间这也就意味这有几个对象 变量名相当于是一个地址会被储存在栈内存中当代码运行到这一行的时候电脑就会循着地址在堆中找到相应的属性具体数据 可以看到这个代码只出现了一次new就说明了只有一个对象的内存被存放到了堆内存而
Student stu2 stu1 stu2和stu1都是指向了一个堆内存当我们将stu1 赋值为NULL这个时候stu1什么都不会指向stu1就成为垃圾。 基本数据类型和引用数据类型
基本数据类型在变量存储的是真实的变量值存储在栈内存 而引用数据类型在栈内存中存储的是一个地址值真正的值是存放在堆内存中
如Student s new Student();这个s就是引用数据类型使用其他空间的数据 数组也是一个引用数据类型。 基本数据类型数据值是存贮在自己的空间中 特点赋值给其他变量也是赋得真实得值 引用数据类型数据值是贮存在其他空间通过调用地址来获取值。 This的内存原理
This的本质代表所在方法调用者的地址值且这个储存在栈内存中
其作用就是区分局部变量和成员变量的 成员变量类中方法外的变量
局部变量方法中的变量