保研笔记七 java程序设计

这篇博客详细介绍了Java的基本数据类型、运算符、类型转换、equals与==的区别、数组操作、类与继承、this与super的使用、静态与final字段、抽象类与接口、内部类以及对象的向上转型等内容,帮助读者深入理解Java编程的关键概念。
摘要由CSDN通过智能技术生成

ppt  from  北大java程序设计

目录

Java数据类型

基本运算符

表达式的类型转换

JAVA中的equals和==

数组

复制数组

多维数组

this的使用

类的继承

super的使用

static字段

final字段

abstract字段

接口与抽象类

JAVA内部类

关于父类引用指向子类对象(A a=new B())

java uml类图实现

注释:

 快速输入代码:

Java数据类型

  • 基本类型: 变量在栈,在“这里” 
  • 引用类型: 变量引用到堆,在“那里”
  • double d = 3; Person p = new Person();
  • 赋值时
  • double d2 = d; 复制的是值
  • Person p2 = p; 复制的是引用

基本运算符

短路(short-circuit)逻辑运算符 

  • && -- 第一个操作数为假则不判断第二个操作数
  • || -- 第一个操作数为真则不判断第二个操作数

x=3,y=4,z=5;

!(x+y)+z-1&&y+z/2=1

表达式的类型转换

  1. int-》long-》float-》double
  2. 所有的byte, short, char 参与算术运算等转为in

JAVA中的equals和==

浅谈Java中的equals和== - Matrix海子 - 博客园 (cnblogs.com)

数组

  • int[] a; ;double []b ; Mydate []c;
  • int a[5]; //非法
  • 数组是引用类型  int [ ] a = new int[5];
  • 数组定义 与 为数组元素分配空间 分开进行
int []a = new int[3];
a[0] = 3;
a[1] = 9;
a[2] = 8;
MyDate []dates = new MyDate[3];
dates[0] = new MyDate(22, 7, 1964);
dates[1] = new MyDate(1, 1, 2000);
dates[2] = new MyDate(22, 12, 1964);

每个数组都有一个属性length指明它的长度,例如:a.length 指明数组a的 长度(元素个数);

Enhanced for语句可以方便地处理数组、集合中各元素

int[] ages = new int[10];
for ( int age : ages )
{
    System.out.println( age );
}

复制数组

System.arraycopy方法提供了数组元素复制功能:

//源数组
int[] source = { 1, 2, 3, 4, 5, 6 };
// 目的数组
int []dest = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 };
// 复制源数组中从下标0开始的source.length个元素到
// 目的数组,从下标0的位置开始存储。
System.arraycopy( source, 0, dest, 0, source.Length );

多维数组

二维数组是数组的数组

int [][] t = new int [3][];
t[0] = new int[2];
t[1] = new int[4];
t[2] = new int[3];
int t1[][] = new int [][4]; //非法, 这与C++不同

构造方法:同理C++

this的使用

  • 在方法及构造方法中,使用this来访问字段及方法
  • 使用this解决局部变量(方法中的变量)或参数变量与域变 量同名的问题
  • Person( int age, String name ) {
     this.age = age;
     this.name = name;
    }
  • 构造方法中,用this调用另一构造方法

  • Person( )
    {
     this( 0, "" );
     ……
     }

类的继承

这位写得太棒了!Java:类与继承 - Matrix海子 - 博客园 (cnblogs.com)

继承关系在UML图中,是用一个箭头来表示子类与父类的关系的。 相当于 is a

class Student extends Person {
 String school;
 int score;
 boolean isGood(){ return score>80; }
 //…
}

 1.方法的继承

父类的非私有方法也可以被子类自动继承。如,Student自动继承Person的方 法sayHello和isOlderThan。

 2.方法的覆盖(Override)(修改)

子类也可以重新定义与父类同名的方法,实现对父类方法的覆盖(Override)。

 @Override //JDK1.5以后可以用这个注记来表示(不用也是可以的)
 void sayHello(){
 System.out.println("Hello! My name is " + name + ". My school is " + school );
 }
 //通过方法的覆盖,能够修改对象的同名方法的具体实现方法。

super的使用

1. 使用super访问父类的域和方法,正是由于继承,使用this可以访问父类的域和方法。但有时为了明确地指明父类的域和方法,就要用关键字super。当覆盖父类的同名方法的同时,又要调用父类的方法,就必须使用super。

void sayHello(){
 super.sayHello();
 System.out.println( "My school is " + school );
}

2.使用父类的构造方法 ,构造方法是不能继承的,可以用super来调用父类的构造方法。

Student(String name, int age, String school ){
 super( name, age );
 this.school = school;
 }

static字段

  • 静态字段最本质的特点是: 它们是类的字段,不属于任何一个对象实例。
  • 它不保存在某个对象实例的内存区间中,而是保存在类的内存区域的公共存储单元。
  • static块在执行main函数之前加载。

再次感叹,写的真好:Java中的static关键字解析 - Matrix海子 - 博客园 (cnblogs.com)

final字段

直接看这人的吧,讲得太好了:浅析Java中的final关键字 - Matrix海子 - 博客园 (cnblogs.com)

abstract字段

1.abstract类 

  • 凡是用abstract修饰符修饰的类被称为抽象类。 抽象类不能被实例化 

2.abstract方法

  • 被abstract所修饰的方法叫抽象方法,抽象方法的作用在为所有子类定义一个统一的 接口。对抽象方法只需声明,而不需实现。
  • 抽象类中可以包含抽象方法,也可以不包含abstract方法。但是,一旦某个类中包含 了abstract方法,则这个类必须声明为abstract类。
  • 抽象方法在子类中必须被实现,否则子类仍然是abstract的。

接口与抽象类

深入理解Java的接口和抽象类 - Matrix海子 - 博客园 (cnblogs.com)

JAVA内部类

Java内部类详解 - Matrix海子 - 博客园 (cnblogs.com)

关于父类引用指向子类对象(A a=new B())

关于父类引用指向子类对象(A a = New B();)的使用,理解向上转型_CoderGuHao的博客-CSDN博客

java uml类图实现

Java UML类图实现 - 简书 (jianshu.com) 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值