Java笔记1

Java笔记1,第1张

一个Java文件可以有多个类,但只能有一个public类。

变量

利用final定义常量
数据类型和定义方法与c++相同 浮点类型默认为double
浮点型 float定义需要添加后缀f 浮点数由于不精确,不能用于比较 可以使用java.math下的BigDecimal类
和BigIntege类进行比较
字符型的使用与c++类似,依然用char定义

运算符

运算符的使用和类型与c++相同

二元运算符
整数时:
(1)如果两个 *** 作数有一个为Long,结果为Long。(2)没有Long时,即使 *** 作数全为short,byte,结果
也是int
浮点运算
一个 *** 作数为double,结果为double,只有两个 *** 作数都为float,结果才是float。

各类运算符的结合性与优先级与c++相同。
逻辑运算符

短路特性:

package j;
public class j1 {
    public static void main(String[] args)
    {
         boolean b1=true;
         boolean b2=false;
         System.out.println(b1||b2);//通过左侧 *** 作数即可判断,则不会计算右侧 *** 作数
         // int a=3/0;系统提示错误 
         boolean c=1>2&&2<(4/0);
         System.out.println(c);
    }
}

得到结果

true
false

利用Scanner来输入数值:

package j;
import java.util.Scanner;

public class j2 {
     public static void main(String[] args)
     {
     Scanner scanner=new Scanner(System.in);
     System.out.println("姓名");
     String name=scanner.nextLine();
     System.out.println("性别");
     String sex=scanner.nextLine();
     System.out.println("年龄");
     int age=scanner.nextInt();
     }
}

得到结果

姓名
李四
性别
男
年龄
20
控制语句

if语句、switch语句、for循环、while循环的内容与c++中一致。

带标签的break和continue:

    public static void main(String[] args)
     {
      /*先定义标签位置 */ lable:
       for(int i=0;i<5;i++)
       {
    	   int sum=0;
    	   sum=sum+i;System.out.println(sum);
    	   if(sum>3) break lable; 
       }
     }
}

结果

0
1
2
3
4
方法

相当于c++中的函数

定义格式:
[修饰符1 修饰符2 …] 返回值类型 方法名(形式参数表)
{
java语句…;
}
要通过对象来调用普通方法。
基本类型传递的时该数据值的copy值;引用类型传递的是该对象引用的copy值,但指向的是同一个对象。

方法的重载与函数重载类似
参数的个数、类型、顺序不同都可构成重载。

构造方法和构造函数类似:
要点
(1)通过new关键字调用;(2)构造器虽然有返回值,但不能定义返回值类型,不能在构造器内使用return返回某个值;

static修饰的方法和变量从属于类,生命周期与类相同。

可以通过import导入类;导入同名类时,只能用包名+类名区分。

面向对象

同一包内不能有同名类。
一、继承
子类、父类的关系与c++中相似,但没有多继承,只有单继承,利用extends关键字。
(快捷键CTRL+T)
形式: class A{

}
class B extends A {

}
当定义一个类时,没有调用extends,则它的父类:java.lang.Object

可利用 对象 instanceof 类 来查看对象和类的关系。

重写(覆盖):
(1)方法名、形参列表相同;(2)返回值类型和声明异常类,子类要小于等于父类;(3)访问权限,子类大于等于父类;

super是父类的直接引用,可以用super来访问父类中被子类覆盖的方法或属性。

调用子类的构造器前一定会先调用父类的构造器(与c++类似)

二、封装
访问控制符,依旧是private、public、protected以及default
default:表示没有修饰符修饰,只有同一个包内的类可以访问。
protected:可以被同一个包内的类和其他包内的子类访问。
private:只有自己类能访问。
public:被该项目内所有包访问。

多态:同一个方法调用,由于对象不同可能会有不同行为(方法的多态而不是属性多态)。
存在条件:继承、方法重写、父类引用指向子类对象。

数组

基本特点:(1)长度确定,一旦被创建,大小不可改变;(2)元素为相同类型;(3)数组类型可以为任何数据;
声明方式:1. type[] name;
2. type name[];
注意:声明数组时并没有数组被创建。

数组初始化:(1)静态初始化(声明时直接赋值)
(2)动态初始化(通过下标赋值)
(3)默认初始化

数组的遍历(即利用循环初始化和输出数组)
for-each循环(一般只用来读取)

public class j4 {
          public static void main(String args[])
          {
        	  int[] a= {1,2,3,4};
        	  for(int m:a)
        	  {
        	   System.out.println(m);
        	  }
          }
          
}

结果

1
2
3
4

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/871617.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存