java笔记

面向对象的特征:

封装、继承和多态

多态的实现方法:

1.通过子类对父类方法的重写(override)实现多态

1)子类中使用与父类中同名的方法,且方法的参数(个数、类型、排列顺序)和返回类型完全一样

2)向上追溯原则

在Java语言中,当调用一个对象的方法时,首先在对象所在的类中寻找这个方法,因此调用时子类方法优先于父类方法。如果没有找到的话,Java会把这个方法调用传到类层次的上一级(直接父类),直到找到这个方法就引用。如果还找不到,继续向上一级传递(父类的父类),直到找到这个方法的签名为止。如果到顶层类也找不到,则系统将提示未能找到的错误信息。

3)子类范围必须大于等于父类范围

2.同一类中定义同名方法即重载(overload)实现多态

super 关键字的使用

1、调用父类中被重写的方法  

        super.方法名(参数) super.display();

2、用来访问父类中被隐藏的成员变量  

         super.成员变量名

3、调用父类中的构造方法  
        super(参数);

访问控制修饰符

Static:静态变量,静态方法

静态变量只初始化一次,与C中得全局变量相似; 多个对象共有静态变量存储空间,不会为每个对象分配相应的空间存储静态变量。因此,静态变量可以直接用类名引用。 静态变量可以用类名或对象引用。

java中值传递和引用传递 

//用不同方法交换两个变量的值。
//MethodExample1.java
public class MethodExample1
{
  	int n1,n2;       //定义成员变量n1,n2
/***下边定义方法swap_value,该方法的功能是交换变量n1,n2的值。
*n1,n2的值由调用者的实际参数值传递而来。
*/
 	 public void swap_value(int n1,int n2)  //定义成员方法带两个整型参数
  	{//按值传递
  		int n0;     //定义方法变量n0,
  		n0=n1;    //先将n1的值赋给n0
  		n1=n2;    //再将n2的值赋给n1
  		n2=n0;   //最后将n0 (原n1) 的值赋给n2
  		System.out.println("在方法swap_value中:n1="+n1+"; n2="+n2);
 	 }
/**下边定义方法swap,该方法的功能是交换对象中成员变量n1,n2的值。
*对象n调用者的实际参数传递而来。
*/
 	public void swap(MethodExample1 n)
  	{//按引用传递
  		int n0;     //借助方法变量n0,交换成员变量n1,n2的值
  		n0=n.n1;
  		n.n1=n.n2;
  		n.n2=n0;
  		System.out.println("在方法swap中:n.n1="+n.n1+"; n.n2=" +n.n2);
  	} 
public static void main(String [] arg) //以下定义main()方法
{
		int  n1=1,n2=10;   //定义方法变量
    		MethodExample1 numbers=new MethodExample1();  //生成本类对象
            numbers.swap_value(n1,n2); //变量n1,n2的值为实参调用swap_value
    		System.out.println("在main()方法中:n1="+n1+" n2="+n2);
    		numbers.n1=5;    //为对象的成员变量n.n1赋值
    		numbers.n2=20;   //为对象的成员变量n.n2赋值
    		numbers.swap(numbers);  //以对象numbers为实参调用方法swap
            System.out.println("在main()方法中:numbers.n1="+numbers.n1+"         numbers.n2="+numbers.n2);
  	}
}

用不同方法交换两个变量的值。
//MethodExample1.java
public class MethodExample1
{
  	int n1,n2;       //定义成员变量n1,n2
/***下边定义方法swap_value,该方法的功能是交换变量n1,n2的值。
*n1,n2的值由调用者的实际参数值传递而来。
*/
 	 public void swap_value(int n1,int n2)  //定义成员方法带两个整型参数
  	{//按值传递
  		int n0;     //定义方法变量n0,
  		n0=n1;    //先将n1的值赋给n0
  		n1=n2;    //再将n2的值赋给n1
  		n2=n0;   //最后将n0 (原n1) 的值赋给n2
  		System.out.println("在方法swap_value中:n1="+n1+"; n2="+n2);
 	 }
/**下边定义方法swap,该方法的功能是交换对象中成员变量n1,n2的值。
*对象n调用者的实际参数传递而来。
*/
 	public void swap(MethodExample1 n)
  	{//按引用传递
  		int n0;     //借助方法变量n0,交换成员变量n1,n2的值
  		n0=n.n1;
  		n.n1=n.n2;
  		n.n2=n0;
  		System.out.println("在方法swap中:n.n1="+n.n1+"; n.n2=" +n.n2);
  	} 
public static void main(String [] arg) //以下定义main()方法
{
		int  n1=1,n2=10;   //定义方法变量
    	MethodExample1 numbers=new MethodExample1();  //生成本类对象
        numbers.swap_value(n1,n2); //变量n1,n2的值为实参调用swap_value
    	System.out.println("在main()方法中:n1="+n1+" n2="+n2);
    	numbers.n1=5;    //为对象的成员变量n.n1赋值
    	umbers.n2=20;   //为对象的成员变量n.n2赋值
    	numbers.swap(numbers);  //以对象numbers为实参调用方法swap
System.out.println("在main()方法中:numbers.n1="+numbers.n1+" numbers.n2="+numbers.n2);
  	}
}

按值传递

Java语言与C/C++语言相比,参数的传递方法有所不同。对基本的数据类型,Java中只有一种传递方法,即通过值传递(pass by value)),方法接收的是原来值的一份拷贝(复制),方法接收参数的值,但不能改变这些参数的值。

按引用传递

在main()方法中,调用语句: numbers.swap(n); 实参numbers为本类对象。

调用方法将此对象传递给swap方法声明的形参n,然后n作为对象在方法体内参与运算。这种按引用传递的方式改变了原来对象(实参)的属性值。 当给一个方法传递一个对象或一个数组时,则是按引用传递的。

因为引用数据类型传递给方法的是数据在内存中的地址,方法中对数据的操作可以改变数据的值。数组中的元素既可是基本类型的数据,也可以是对象

抽象的两种形式

抽象类和接口

抽象类 

1.包含抽象方法的类必须是抽象类,一个抽象类对抽象方法的个数不限制

2.抽象方法没有方法体,普通方法必须有方法体

3.抽象类只能被继承,不能实例化

4.抽象类继承并不要求强制实现父类所有抽象方法,但是非抽象子类必须实现所有未实现的抽象方法。

5.一个类不能既是抽象类又是final 类

接口

特殊的抽象类,java类可以实现多个接口,接口成员默认属性public static final,可以省略,成员方法默认public abstract,也可以省略,也可定义带方法体的方法,需要使用default修饰。

随机生成0-10的整数

import java.util.Random;

Random random=new Random();

A=random.nextInt(10);

用空格将字符串分开

String[] words=line.trim().split(" ");

格式化输出不足6位数的数字(字符串类型)

String rr=String.format("%06d", x);

格式化输出当前时间

import java.text.SimpleDateFormat;
import java.util.Date;

 SimpleDateFormat ft = new SimpleDateFormat ("yyyyMMdd"); 

String date=ft.format(new Date());

数组的创建

一维数组

(1)int []x =new int[100];

(2)ArrayList<Integer> x = new ArrayList<>(); // 创建一个动态整数数组列表

二维数组

(1)int numRows = 3;

        int[][] matrix = new int[numRows][];

(2)ArrayList<ArrayList<Integer>> matrix = new ArrayList<>();

输出数组x中的最小值

System.out.println(Arrays.stream(x).min().getAsInt());

int min=Math.min(x1,x2);

获取最大值

Integer.MAX_VALUE

字符串的反转

StringBuffer str1=new StringBuffer(scanner.nextLine());

字符串中的某个字符

str.charAt(index);

  • 9
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java笔记是由北京大学青鸟教育推出的一款专门针对Java语言的学习工具。它以全面、系统、实践为特点,通过详细的代码示例和清晰的讲解,帮助学习者全面掌握Java编程语言Java笔记采用了线上与线下相结合的学习模式。学员可以通过手机、平板电脑、电脑等设备在线学习,还可以在学习过程中随时记录自己的学习笔记。同时,北大青鸟还为学员提供线下实践环境,学员可以在实验室里亲自动手实践所学知识,加深理解和应用。 Java笔记的内容非常全面,包括了Java语言的基本语法、面向对象编程、异常处理、流操作、多线程、数据库操作等众多知识点。除了理论知识,Java笔记还提供了大量的实例代码,可供学员参考和模仿。这样的学习方式既帮助学员理解Java的基本概念,又能让他们运用所学知识解决实际问题。 与此同时,Java笔记还注重学员的互动交流。在学习过程中,学员可以利用笔记功能记录学习心得和疑惑,还可以在论坛上与其他学员进行讨论和交流。这种互动形式既能促进学员之间的学习互助,也能更好地帮助学员理解和应用所学知识。 总之,Java笔记是北大青鸟推出的一款专注于Java语言学习的工具,通过系统的课程设置、丰富的实例代码和互动交流的方式,帮助学员全面掌握Java编程知识,提升编程能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值