Java学习笔记(一)

    写在前面: 

    Java作为一门完全面向对象的语言,在以后的工作中,听说如果想要从事开发类工作的话,非常重要。而作为笔者第一门完全有老师带着学的语言,笔者更加想要认真学习,毕竟还是需要拿高分的....

    面向对象具有三大特征,封装,继承和多态。而Java就是一门纯面向对象语言。笔者所在学校的学习路线是Java基本语法,面向对象程序设计,软件工程设计。所以在入门阶段,主要还是学习Java的面向对象基本思想,线程编制,Java数据库以及常用的类。开发平台为JDK18,使用工具为Eclipse。均为开源软件。还有一本参考书,《Java编程思想》或者是《Think in Java》,厚厚的一本书,,,,由于笔者以后并不希望从事开发工作,,,,所以没有研读,但确实是圣经级别的教科书。

     (一)Java语言基础

     1、安装Java需要配置环境变量,因为Java的跨平台是通过虚拟机实现的,因此不需要像C\C++那样,考虑编译器。

     2、任何一个Java程序中,必须要有一个main方法,且必须要修饰为 public static void main(String[] args),表示传入一个字符串数组作为参数。如果源文件中有多个类,那么只能有一个类是public类,而且源文件名与该类名完全相同;如果源文件中没有public类,那么文件名只需要和其中某个类名相同;程序的扩展名为.java。

    3、布尔类型为boolean ;值为true  或是 false  ,当变量缺省时,默认为false。

    4、整型变量的缺省值为0;int型分配4字节,范围为-2e31~2e31 - 1,其他的整形分配的字节数都不同,而float型内存分配4个字节。对于字符串参数,可以使用Integer.parseInt(String s);转化为十进制整数。

    5、字符类型的缺省值为'\u00000';可以使用强制类型转换来输出在Unicode表中的相应位置。

    6、Java输入通过Scanner类,具体是通过创建对象的方法,Scanner reader=new Scanner(System.in);     如下:nextBoolean()  nextByte()  nextShort()  nextInt()  nextLong()   nextFloat()   nextDouble();

例子:double x = reader.nextDouble();

而next()方法 :读取一个单词,以空格作为分隔符,但如果输入多个单词的话,只可以读取第一个。

    7、Java中数组的使用方法:        

                         int[] ai;    ai=new int[10];
                         String[] s;   s=new String[3];

      (1)、不能直接使用,必须经过初始化分配内存后才能使用。

      (2)、声明数组时无需指明数组元素的个数,也不为数组元素分配内存空间。

      (3)、使用arryName.length表示数组的长度。

      (4)、Java不像C语言那样引入指针,地址的概念。而是分为基本类型和引用类型,基本类型数组的每个元素都是一个基本类型的变量;引用类型数组的每个元素都是对象。基本类型的值是分配在栈上的,而引用类型的值是分配在堆上的;对于引用类型的变量,栈中保存的仅仅是变量的引用(地址)

 •基本类型

内存栈中保存的值就是该变量的值;          Java有八大基本类型: 整型(4种)、浮点型(2种)、字符型、布尔型

引用类型

内存栈中保存的值是指向变量值的地址;   类、数组等都是引用类型         引用类型:默认值为null;

    8、短路逻辑运算符:

        逻辑运算符&&||也称为“短路逻辑运算符” 。例如:对于表达式op1&&op2,当op1的值为false时,&&运算符不再计算op2的值

      9、instanceof用于判断对象是否由该类创建  boolean  isString = x instanceof  String

      10、

 

(二)、Java中的类与面向对象

面向对象的三大特征:封装,继承,多态。

封装:–将数据和对数据的操作封装在一个对象中,并且对对象的使用者隐藏数据的实现过程

Java中不支持多继承,而是通过接口来实现的。

 

如果类定义了一个或者多个构造方法,那么Java不提供默认的构造方法

那么在对对象实例化的时候,必须要使用已有的构造方法。

实例方法既能对类变量操作,也能对实例
变量操作
;而类方法只能对类变量进行操作

 

this可以出现在实例方法和构造方法中,但不可以出现在类方法中

this关键字出现在类的构造方法中时,代表使用该构造方法所创建的对象。

this关键字出现在类的实例方法中时,代表正在调用该方法的当前对象。

 

在类B中创建了类A的对象a,则a不能访问自己的私有变量和方法

通过Class 对象,可以查询其代表的对象的各种信息:比如该对象所属类的名字,基类名,有哪些成员等。void PrintClassName(Object obj) {

    System.out.println("The Object's class is " +obj.getClass().getName());

}

equals也是判断两个对象是否同一,是一个方法

 

super.被覆盖的方法名”可以在子类中显式的访问被覆盖的方法   在子类的方法中使用

 

子类不能从父类继承构造方法,而且子类在构造过程中必须调用其父类的构造方法

子类的构造方法中可使用“super”调用父类的构造方法,但必须写在方法体第一行

注意:super语句调用父类构造方法的格式:
正确:super(参数表)
错误:super.父类名(参数表);

 

上转型:–父类声明的对象指向子类创建的实体,此时称为“上转型”操作,而父类对象是子类对象的“上转型”对象父类  a = new 子类();     ab的上转型对象

上转型:

如果未涉及到隐藏/覆盖:能访问继承的成员方法;不能访问子类新增的成员、方法;

如果涉及到隐藏/覆盖

成员:能访问被隐藏的成员(即父类原有的成员),而不能访问子类重定义的成员

方法:仅能够访问覆盖后的方法,父类原有的方法“消失”了

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值