概述
面向对象包含的内容
- 标准的JavaBean
- 要求:
- 编写符合`JavaBean` 规范的类
- this的使用说明
- 作用是:
- this使用格式: this() 或 this(参数)
- 注意: this调用时,必须放在构造方法的**第一句**(非注释内容)
- 成员变量
- 构造方法
- 特征
- 作用
- 有参和无参构造方法细节
- 初始化代码块
- 封装——怎么使用,有什么作用
- 使用
- 好处
- 形参和实参
- 匿名对象
- 类的定义
- 自定义类
- 成员变量语法
- 对象和类的定义
- 面向对象和面向过程区别
- java开发的任务
标准的JavaBean
JavaBean是Java语言编写类的一种标准规范。
要求:
1. 类必须是具体的和公共的
2. 具有无参数的构造方法
3. 有操作成员变量的`set` 和`get` 方法
public class ClassName{
//成员变量
//构造方法
//无参构造方法【必须】
//有参构造方法【建议】
//成员方法
//getXxx()
//setXxx()
}
编写符合JavaBean
规范的类
比如:以学生类为例,标准代码如下
public class Student{
//成员变量——此处应用private封装,否则get和set方法就无用处了
private String name;
private int age;
//构造方法——无参的
public Student(){}
//有参的
public Student(String name,int age){
this.name=name;
this.age=age;
}
//成员方法
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age=age;
}
public int getAge(){
return age;
}
}
this的使用说明
this单词意思是——这个。在Java中表示这个类的其中一个对象是什么什么
比如上个Java中,this.name=name;
特指Student这个类中name对象,与其他同名的name不掺和。
作用是:
使用 this
修饰方法中的变量,解决成员变量被隐藏的问题
比如以下代码:
public class Student {
private String name;
private int age;
public void setName(String name) {
//name = name;
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
//age = age;
this.age = age;
}
public int getAge() {
return age;
}
}
public class Student {
private String name;
private int age;
public void setName(String name) {
name = name;
}
public void setAge(int age) {
age = age;
}
}
//这个赋值会失败,name和age会隐藏
在一个类中,其中一个构造方法调用其他构造方法也可以使用this关键字
this使用格式: this() 或 this(参数)
比如以下代码:
public User(int id,String name,int age){
//构造方法重载
this();
//必须放在第一行
System.out.println("User类的三个参数的构造方法");
this.id = id;
this.name = name;
this.age = age;
}
注意: this调用时,必须放在构造方法的第一句(非注释内容)
成员变量
不同点 | 成员变量 | 局部变量 |
---|---|---|
位置 | 类中,方法外 | 方法中 |
范围 | 类中 | 方法中 |
初始化值 | 有默认值 | 无,必须先定义,赋值 |
生命周期 | 随着对象的创建而存在,随着对象的消失而消失 | 随着方法的调用而存在,随着方法的调用完毕而消失 |
构造方法
构造方法Java中称为构造方法或构造器。C++称为构造函数
特征
- 名字必与类名相同。
- 参数可有可无,可多可少
- 没有返回值,也不是void
- new 的时候被自动调用。创建对象时自动调用
作用
- 对象在创建的时候进行数据初始化
比如以下代码:
public class Teacher {
private int id;
private String name;
private int age;
public Teacher(){
// 构造方法
System.out.println("Teacher的对象出生了...");
id = 101;
name = "张三丰";
age = 200;
}
public void setId(int x){
id = x;
}
public int getId(){
return id;
}
public void setName(String str){
name = str;
}
public String getName(){
return name;
}
public void setAge(int x){
age = x;
}
public int getAge(){
return age;
}
}
有参和无参构造方法细节
- 如果你不提供构造方法,系统会给出无参数构造方法。
- 如果你提供了构造方法,系统将不再提供无参数构造方法。
- 构造方法是可以重载的,既可以定义参数,也可以不定义参数。
初始化代码块
类似构造方法,作用也是用来初始化对象的成员变量的但是初始化块初始化对象的时期优先于构造方法,所以当多个构造方法拥有同样的初始化语句时,可以把该语句统一提到初始化块中定义,以免相同的初始化语句分散到各个构造方法中引起代码重复、凌乱。
封装——怎么使用,有什么作用
封装是将对象的属性和方法细节隐藏起来,只对外提供某些方法和接口,实现了相应的操作。
对类提供保护,是内部属性方法不泄露。
使用
-
使用
private
关键字来修饰成员变量。 -
对需要访问的成员变量,提供对应的一对
getXxx
方法 、setXxx
方法。
private使用格式
private 数据类型 变量名 ;
封装后使用getXxx
方法 / setXxx
方法,访问成员变量
比如以下代码
package com.cn.day.two;
public class Student {
//类创建对象的过程叫做实例化
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void showStu1() {
System.out.println("学生叫做" + name + ",年龄" + age);
}
}
class works{
public static void main(String[] args) {
//对象成员的调用
//使用new关键字创建了对象后,就要调用对象成员(属性、方法)
Student st=new Student();
st.setAge(17);
System.out.println(st.getAge());
st.setName("杨杨");
System.out.println(st.getName());
}
}
好处
- 提高安全性
- 提高隐秘性 ,将变化隔离
- 便于使用,还提供重复特性
使用点(.)来调用
形参和实参
形参:形式参数(声明方法时,方法中声明的参数)
实参:实际参数(调用方法时,实际传给方法的参数)
匿名对象
没有名字的实体,也就是该实体没有对应的变量名引用,当对象对方法进行一次调用的时候,可以使用匿名对象对代码进行简化。
当对实际参数进行数据传递时,如果传递的是引用数据类型,这种叫做引用传递;
引用传递会把当前的地址传给其他的方法,变相的也是操作的同一块空间,如果这块空间发生改变那么对应的其他地方的值也会随之改变。
传递的基本数据类型叫做值传递。只会改变拷贝的值
类的定义
Java API提供了一些现成的类供我们使用,我们可以使用这些现有类来创建实例(对 象)
比如:String,Object,Random,Scanner,Math…
格式:
//类名 对象名 = new 类名();
String s1 = new String(“Hello,World”);
Object o = new Object();
自定义类
除了使用现有API提供的类库,我们也可以自定义类。类是具有相同属性和相同操作的共性抽取,属性就是成员变量,操作就是方法
,类的定义主要有两方面组成:
成员变量(属性):事物的状态信息
方法(行为):事物能做什么
class 类名{
成员变量(属性)定义;
方法定义;
}
成员变量语法
[访问控制符] 数据类型 属性名 [=值]
因为[]可以省略,所以我们一般简化格式书写
比如以下:
class Student{
int num;
//学号
String name; //姓名
int age;
// 年龄
String address; //家庭住址
}
成员方法的四个要素:
1、访问控制符(修饰符)
2、返回值类型——(方法调用结束之后,返回给调用者的信息) void(方法没有返回值)
3、方法名——调用的时候用来区分
4、参数列表——参数–方法运行时,需要的额外的信息.方法有返回值。
注意:和以前定义方法几乎是一样的。只不过把static去掉。
对象和类的定义
什么是对象
-
对象:是一类事物的具体体现。对象是类的一个实例(对象并不是找个女朋友),必然具备该类事物的属性和行为。
-
什么是类
-
类:是一组相关属性和行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该类事物。
现实中,描述一类事物:
- 属性:就是该事物的状态信息。
- 行为:就是该事物能够做什么。
面向对象和面向过程区别
“面向对象”强调的是功能行为,面向过程”是一种以过程为中心的编程思想。
“面向对象”的特征封装、继承、多态。
java开发的任务
- 使用已有的类创建对象。(jdk中提供的)
- 编写自已的类,使有自已的类创建对象。
- 调用对象的方法,属性,去解决问题
类与对象的关系
- 类是对一类事物的描述,是抽象的。
- 对象是一类事物的实例,是具体的。
- 类是对象的模板,对象是类的实体。
最后
以上就是淡淡白开水为你收集整理的面向对象篇 封装 This 成员变量 构造方法 有参和无参构造方法细节 初始化代码块 形参和实参 自定义类 对象和类的定义标准的JavaBean的全部内容,希望文章能够帮你解决面向对象篇 封装 This 成员变量 构造方法 有参和无参构造方法细节 初始化代码块 形参和实参 自定义类 对象和类的定义标准的JavaBean所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复