java入门

本文详细介绍了Java编程语言的基础知识,包括类与对象的概念、继承、多态、抽象类与接口的区别,以及final关键字的使用场景等。同时,还探讨了Java中的数组特性。

小记:

eclipse小记:eclipse自动补全以及防止空格设置:https://blog.youkuaiyun.com/as1072966956/article/details/80672937
防止空格里版本不一样,没有org,而且网上方法都不行诶,因为找不到文件,没法改代码,没想到啊,代码思路都是去掉空格,但eclipse里可以设置只有enter有效啊,我去太机智了,评论的老哥!!!
在Windows/Preferences/java/Editor/Content Assist下后边有个Disable insertion triggers except ‘Enter’,把这个打钩就可以了,只有按enter才会输入到屏幕

JAVA程序将源代码输出成字节码,然后通过JVM(java虚拟机)执行,这样使得不同机器编写的java程序可以在同一环境执行,因为字节码都是一样的,根据不同环境执行就可以。
例如javac将源文件输出成字节码.class,在通过java将.class文件输出。
编译过java源代码之后,每个单独的类都放到了自己的输出文件中,输出文件名字都是类名加.class,执行java时是执行类。也就是说,javac编译的是文件名,java执行的是类名,如果同名的话,运行方便。

java基本上和C++感觉都很类似呀,就算是复习一下C++啦。

命名方法:类名首字母大写,变量采用驼峰StudentName或者下划线student_name

类和对象

this:

this属于一个对象而不属于类,java虚拟机会给每个对象分配this,代表当前对象。
为什么要用this呢?主要是为了提高可读性,如果不用this,构造函数的参数列表名就要与类中成员变量名不同,可读性变差。点这里例子很不错哦。

类变量、类方法

类变量: 类内static修饰的静态变量,共享变量。类变量是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任
何一个该类的对象去修改它时,修改的也是同一个变量;调用可以用类名也可以用对象名调用。

类方法: static修饰的方法。只能访问静态变量,不能访问非静态变量。

四大特征:

抽象、封装、集成、多态

封装:

访问级别访问控制修饰符同类同包子类不同包
公 开Public
受保护Protected
默 认没有修饰符
私 有private

这里包的概念,在C++比较模糊,应该是C++里的namespace。
包 – 三大作用
1、区分相同名字的类
2、当类很多时,可以很好的管理类
3、控制访问范围
包 – 换包命令
package com. 自定义名字; 全小写
注意:打包命令一般放在文件开始处。
因此定义每个类之前,都要明确包名。

继承

私有不能继承
一个子类最多只能继承一个父类
语法:class 子类 extends 父类

方法重载

方法重载就是在类的同一种功能的多种实现方式,到底采用哪种方式,取决于调用者给出的参数。
注意事项:
1、方法名相同
2、方法的参数类型,个数,顺序至少有一项不同
3、方法返回类型可以不同(只是返回类型不一样,不能构成重载)
4、方法的修饰符可以不同(只是控制访问修饰符不同,不能构成重载)

方法覆写

方法覆盖就是子类有一个方法,和父类的某个方法的名称、返回类型、参数一样,那么我们就说子类的这个方法覆盖了父类的那个方法。
注意事项:
方法覆盖有很多条件,有些书上说的比较细,总的讲有两点一定注意:
1、子类的方法的返回类型,参数,方法名称,要和父类的返回类型,参数,方法名称完全一样,否则
编译出错。
2、子类方法不能缩小父类方法的访问权限。

多态

所谓多态,就是指一个引用(类型)在不同情况下的多种状态。也可以理解成:多态是指通过指向父类的指针,来调用在不同子类中实现的方法。
例子:

//非多态演示
Cat cat=new Cat();
cat.cry();
Dog dog=new Dog();
dog.cry();
//多态演示
Animal an=new Cat();
an.cry();
an=new Dog();
an.cry();
//animal是cat和dog的父类

java允许父类引用变量引用它的子类的实例
Animal an=new Cat();//cat是animal的子类。

抽象类

当父类的一些方法不能确定时,可以用 abstract 关键字来修饰该方法[抽象方法],用 abstract 来修饰该类[抽象类]。
相当于C++中包含纯虚函数的接口类。

public class Demo124 {
	public static void main(String[] args) {
		//Animal an=new Animal(); 抽象类不允许实例化
		Animal an=new Cat();
		an.cry();
		an=new Dog();
	an.cry();
	}
}
//抽象类 abstract 关键词
abstract class Animal{
	String name;
	int age;
	//动物会叫,使用了 abstract 抽象方法
	abstract public void cry();//抽象类中 可以没有abstract抽象方法
	// 抽象类内可以有实现方法
	public void sx(){
		System.out.println("实现方法");
	}
}
// 当一个子类继承的父类是 t abstract  抽象类的话,需要程序员把抽象类的抽象方法全部实现。
class Cat extends Animal{
	//实现父类的 cry,其实类似上节学习中的子类覆盖父类
	public void cry(){
		System.out.println("猫猫叫");
	}
}
class Dog extends Animal{
	//实现父类的 cry,其实类似上节学习中的子类覆盖父类
	public void cry(){
		System.out.println("汪汪叫");
	}
}

其中,抽象类不允许被实例化,abstract 关键词,派生类必须完善抽象方法。

抽象类 – 深入讨论
抽象类是 java 中一个比较重要的类。
1 、用abstract 关键字来修饰一个类时,这个类就是抽象类。
2 、用abstract 关键字来修 饰一个方法时,这个方法就是抽象方法。
3 、abstract 抽象类中的 abstract 抽象方法是不允许在抽象类中实现的,一旦实现就不是抽象方法和
抽象类了。abstract 抽象方法只能在子类中实现。
4 、抽象类中可以拥有实现方法。
5、抽象方法在编程中用的不是很多,但是在公司笔试时,却是考官比较爱问的知识点。
抽象类 – 注意事项
1 、抽象类不能被实例化
2 、抽象类不一定要包含 abstract 方法。也就是说,抽象类可以没有 abstract 抽象方法。
3 、一旦类包含了 abstract 抽象方法,则这个类必须声明为 abstract 抽象类。
4 、抽象方法不能有主体。
正确的抽象方法例: abstract void abc();
错语的抽象方法例:abstract void abc(){}

接口

接口就是给出一些没有内容的方法,封装到一起,到某个类要使用的时候,在根据具体情况把这些方法
写出来。
接口的建立语法: interface 接口名{ { 方法 ;}
语法: class 类名 implements 接口{ {
方法; ;
变量; ;
} }

接口 – 注意事项
1、接口不能被实例化
2、接口中所有的方法都不能有主体。错误语法例:void aaa(){}←(注意不能有花括号)
接口可以看作更加抽象的抽象类。
3、一个类可以实现多个接口
4、接口中可以有变量[但变量不能用 private 和 protected 修饰]
a、接口中的变量,本质上都是 static 的而且是 final 类型的,不管你加不加 static 修饰
b、在 java 开发中,我们经常把常用的变量,定义在接口中,作为全局变量使用
访问形式:接口名. . 变量名
5、一个接口不能继承其它的类,但是可以继承别的接口

定义类完整版:在这里插入图片描述
绑定分为前期绑定和后期绑定。
1、前期绑定:在程序运行之前进行绑定,由编译器和连接程序实现,又叫做静态绑定。比如 static方法和final 方法,注意,这里也包括 e private 方法,因为它是隐式 l final 的。
2 、后期绑定:在运行时根据对象的类型进行绑定,由方法调用机制实现,因此又叫做动 态绑定,或者运行时绑定。除了前期绑定外的所有方法都属于后期绑定。多态就是在后期绑定这种机制上实现的。

final

final存在的目的
1 、当不希望父类的某个方法被子类覆盖( override) 时,可以用final 关键字修饰。
2 、当不希望类的某个变量的值被修改,可以用 l final 修饰。如果一个变量是 final ,则必须赋初值,否则编译出错。
3 、当不希望类被继承时,可以用final

final – 注意事项
1、final 修饰的变量又叫常量,一般用 XX_XX_XX 来命名。(带下划线)
2、final 修饰的变量在定义时,必须赋值,并且以后不能再赋值。
final – 什么时候用
1、因为案例的考虑,类的某个方法不允许修改。
2、类不会被其它的类继承。
3、某些变量值是固定不变的,比如圆周率 3.1415926

带有final 修饰的变量命名时应有_ _ 下划线来区分表示。这是 java 程序员的标准。

一维数组 – 小结(可以存放对象数据哦)

1、数组可存放同一类型数据;
2、简单数据类型(int,float)数组,可直接赋值;
3、对象数组在定义后,赋值时需要再次为每个对象分配空间[即:new 对象];
4、数组大小必须事先指定;
5、数组名可以理解为指向数组首地址的引用;
6、数组的下标是从 0 开始编号的。

int a[];int[] a;
a=new int[10];
int a[]={2,3,12,2}

二维数组

int a[][]=new int[2][3];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值