IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java-SE基础知识,第五天学习总结 -> 正文阅读

[Java知识库]Java-SE基础知识,第五天学习总结

面向过程和面向对象的编程思想

面向过程的编程思想:

????????以流程为为单位,注重功能的实现 存在的问题: 流程之间相互依赖,导致代码之间的耦合性非常高 不利于程序的维护和后期功能的扩展

面向对象的编程思想:

????????面向对象是建立在面向过程的基础之上,也就是说在面向对象的编程中一定会用到面向过程的 编程思想。

????????面向对象就是把任何一个事物看作是一个整体,从事物的特征(属性)和行为(方法、功能)两个 方面进行描述。

面向对象特点:

????????能够以更加贴合实际情况或者正常的思维方式,来去理解一个事物或者软件的功能

????????面向对象是来源于生活服务于生活

????????面向对象的编程英文简称--OOP

????????面向对象的四大或者三大特征:抽象(可选)、封装、继承、多态

对象:

什么是对象:

? ? ? ? 具体存在的一个事物就是对象,万事万物,皆对象。

特点:

? ? ? ? 1.无论两个事物多么的接近和相似,始终都是两个不同的事物

? ? ? ? 2.一项法律、法规、规章制度、政策都是一个对象

抽象:

????????把同一类事物,它们共同的特征(属性)和行为(方法)进行抽取、归纳、总结。

封装:

????????意义和目的:就是包装的意思,为了保证抽象出来数据的安全性

????????封装包括对属性和方法的封装,而且同一类事物要把它们的属性和方法封装到一起,这才是一个完整的 封装。

???????? 封装不是绝对的,如果需要访问封装起来的属性和方法,就必须通过指定的公共入口(方法、接口)。

类:

????????在Java中,类中存放的就是抽象出来的属性和方法。

定义方法:

????????

访问修饰符 class{
    //属性
    //方法

}

属性:就是变量,也称为属性

????????成员属性或者全局变量:就是在类中任何方法或者代码块外部定义的变量,整个类中都可以使用。 成员变量,都有默认值,会根据数据类型来决定。

? ? ? ? 浮点类型的默认值是0.0

? ? ? ? 整数类型的默认值是0

? ? ? ? boolean类型的默认值是:flase

????????char类型的默认值是空格

????????所有引用类型的默认值都是null

局部属性或者局部变量:就是在方法或者代码块内部定义的变量,只能在方法内部或者代码块内部 使用,而且局部变量必须要初始化了才能使用。

对象的创建:

类是模板,可以通过类创建N个属于这个类的事物就是对象,基于这个类创建的对象,那么这个对象就 拥有类中定义的所有属性和方法

类是对对象的抽象,对象是对类的实例化

要想使用类中的属性和方法,就必须创建一个当前类的对象,语法:

类名 对象名=new 类名();

一个类中可以创建出N个对象,但是你要通过new关键字,那么创建的对象就是一个新的对象

通过对象调用属性和方法,语法:

/**
定义类
*/
public class Demo1{
//成员属性、全局变量
int num;
double money;
String name;
boolean flag;
char c;
public static void main(String[]args){
//创建对象
Demo1 demo1=new Demo1();
demo1.num=100;
demo1.money=99.66;
demo1.flag=true;
demo1.c='z';
System.out.println(demo1.num);
System.out.println(demo1.money);
System.out.println(demo1.name);
System.out.println(demo1.flag);
System.out.println(demo1.c);
}
}

构造方法:

????????????????创建类的对象时,实际上是通过构造方法来完成的

构造方法:

? ? ? ? 1.方法名和类名相同

? ? ? ? 2.没有void,也没有return

? ? ? ? 3.方法不能被static修饰

格式:????????类名? ?对象名= new? ?构造方法(参数列表);

语法:

[访问修饰符] 类名(参数){
}

构造方法的作用:

????????????????1.创建对象

????????????????2.可以对成员属性进行初始化

构造方法的分类:

????????当一个类中,不存在任何形式的构造方法时,那么JVM会提供一个默认的无参数的构造方法。

构造方法分为:

????????无参数的构造方法:1.隐式无参的构造方法????????????????

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2.显示无参的构造方法

? ? ? ? 有参数的构造方法,在调用时,需要传递数据,而且数据要和构造方法中参数的类型,个数, 顺序必须完全匹配。
????????构造方法中的参数,有被称为形式参数(形参),在调用这个构造方法时,传递的数据称为实际参数 (实参)

????????在一个类中,可以同时拥有多个构造方法,只要构造方法之间的参数列表不同即可。

示例:

/**
构造方法
*/
public class Demo2{
public Demo2(){
System.out.println("------无参数的构造方法------");
}
public Demo2(String name,int age){
System.out.println("------有参数的构造方法----- name="+name+", age="+age);
}
public Demo2(int a,int b){
System.out.println("------有参数的构造方法----- a="+a+", b="+b);
}
public static void main(String[]args){
Demo2 demo2=new Demo2("zhangsan",20);
}
}

方法:

所谓方法,就是完成同一功能的代码块

定义语法:

[访问修饰符] 返回值类型 方法名(参数列表){
//返回值
return 返回值;
}

方法分类:

????????1.无返回值无参数的方法

[访问修饰符] void 方法名(){
}
说明: void 表示当前方法不会返回数据给调用方

? ? ? ? 2.有返回值无参数的方法

[访问修饰符] 返回值类型 方法名(){
//代码
//返回值
return 值;
}
说明:
返回值类型由返回值来决定的
带有返回值的方法的最后一句代码,一定是:return 返回值; 而且一次只能返回一个值。

? ? ? ? 3.无返回值有参数的方法

[访问修饰符] void 方法名(数据类型 参数1,数据类型 参数2,...){
}
说明:
方法中的参数可以有多个,参数之间使用逗号分隔。
方法中的参数也称为形式参数(形参)
调用有参数的方法时,传递的数据称为实际参数(实参),在传递数据时,必须和目标方法中参数
的个数,类型,顺序完全一致。

? ? ? ? 4.有返回值有参数的方法

[访问修饰符] 返回值类型 方法名(参数列表){
//最后一句代码
return 返回值;
}

示例:

/*面向对象的四种普通方法

 */
public class Test11 {
    //这是一个无参数无返回值的方法
    public void display(){
        System.out.println("-----------这是一个无参数无返回值的方法--------------");

    }
    //这是一个无参数有返回值的方法
    public int display2(){
        System.out.println("--------------这是一个无参数有返回值的方法-------------");

        return 10+20;
    }
    //这是一个有参无返回值的方法
    public void display3(int a,int b){
        System.out.println("------------这是一个有参无返回值的方法--------a:  "+a+"    b:  "+b);
    }
    //这是一个有参有返回值的方法,返回什么数据类型void就是什么数据类型,比如return的是字符串,就把void换成String
    public String display4(String name,int age,double money){
        System.out.println("---------这是一个有参有返回值的方法---------------");
        return "name="+name+"age="+age+"money="+money;
    }

    public static void main(String[] args) {
        Test11 test11=new Test11();
        test11.display();
       // test11.display2();
        System.out.println(test11.display2());
        test11.display3(10,20);
        //test11.display4("张三",18,6666.66);
        System.out.println(test11.display4("张三",18,6666.66));

    }
}

代码的执行顺序:

????????在JavaSE中,main方法是程序的入口,所有普通的方法,都要在main方法中被调用才有机会得到 运行;普通方法运行完毕后,再回到Main方法,所以,程序从Main方法开始,也从Main方法结 束。

????????普通方法之间的调用,直接写 方法名(参数列表) 即可。

示例:

//代码之间的执行流程
public class Test12 {
    public static void main(String[] args) {
        Test12 test12=new Test12();
        test12.display();
        System.out.println("程序执行完毕");
    }
    public void display(){
        System.out.println("开始执行display代码");
        display2(10,20);
        System.out.println("--------display代码执行完毕------------");
    }
    public void display2(int a,int b){
        System.out.println("-------------开始执行display2的代码-----------");
        System.out.println("a"+"+"+"b"+"="+(a+b));
        System.out.println("--------------display2代码执行完毕--------------");

    }
}

this关键字:

????????使用场景:this关键字只能出现在没有被static修饰的方法中。

????????作用:this关键字表示对当前类某个对象的引用(哪个对象调用这个方法,this就指向谁)

????????用法:当方法中的局部变量或者参数和成员(全局)变量完全一致时,以局部变量或者参数为主(就近原 则);如果此时就想调用全局变量,则可以通过this关键字来解决,格式是:this.属性名

?????????????????当this以this(参数列表)的形式,出现在构造方法的第一句代码时,就表示当前构造方法,调用 了该类中其它的构造方法,可以通过this的参数列表来匹配。

示例:

//This关键字
public class Test13 {
    int num=999;//定义一个成员变量
    public Test13(){
        this("张三",20);//this匹配到了有参数的构造方法,调用了他
        System.out.println("--------------");
    }
    public Test13(String name,int age){
        System.out.println("姓名+"+name+",年龄+"+age);
    }
    public void display(){
        int num=666;
        System.out.println(num);//没有this关键字就按照就近一致原则,输出num=666
        System.out.println(this.num);//this关键字指定了成员变量所以输出成员变量num=999;
    }

    public static void main(String[] args) {
        Test13 test13=new Test13("李四",18);//有参的构造方法
        Test13 a=new Test13();//没有参数的构造方法
        test13.display();
    }
}

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-30 15:28:34  更:2021-11-30 15:30:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:20:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码