Java面向对象程序设计--基础

版权声明:转载请标明本文来源,欢迎点赞评论一起学习ヾ(◍°∇°◍)ノ゙ https://blog.csdn.net/slyslyme/article/details/88225001

一、Java入门

Java运行环境JRE, 由Java虚拟机JVM、类库和一些核心文件组成

多线程是指处理器可以在不同线程之间快速切换

如果源文件中有多个类,那么只能有一个类是public类,如果有一个类是public类,那么源文件的名字需要和这个类的名字一致,如果源文件中没有public类,那么只要和某个类的名字相同就可以了

主类是有public static void main的类

关于编译:

javac Hello.java  (如果源文件中有多各类,编译源文件将生成多个扩展名为.class的文件,每个文文件只存放该类的字节码)

关于运行:使用JVM中的java.exejava解释器进行解释、执行字节码文件

java Hello (Hello是主类名)

一个Java程序由若干个类组成,可以存放在一个源文件中,也可以存放在多个文件中

二、基本类型、数组、枚举

1.

Java使用Unicode标准字符集,最多可识别65535个字符

基本数据类型:Boolean byte short char int long float double(按精度由低到高)

精度级别高的赋值给级别低的变量时,必须使用显示类型转换运算

int z  =(int)1999L

输入内容:需要使用Scanner调用对象 Scanner read = new Scanner(System.in)

然后对于各种不同类型的变量 read.nextInt() read.nextDouble()```````

输出内容:System.out.println()

2. 

数组

声明数组,不允许在方括号中指定元素的个数  int[] a 或者 int a[]

创建数组,a = new int[4]  也可以用一个变量来表示数组的大小

求数组的长度 数组名字.length

排序与使用二分法查找:public static void sort(double a[]) ;;   public static int binarySearch(double a[], double number)

对于二分法查找,数组必须已经排好序,存在number则返回索引,否则返回一个负数

toString()返回数组内容的字符串表示形式

equals() 比较两个数组中的元素值是否相等

for循环中的数组遍历方式

 int a[] = {2, 3, 4, 5};
        for(int i: a) {
                System.out.println("heifnegli"+ i);
        } // 输出的是 2 3 4 5

三、面向对象语言的三大特性 继承 封装 多态

封装性:将数据和对数据的处理操作封装到一起,关于类与对象

继承性:子类可以继承父类的属性和功能,同时子类可以自行添加独有的数据与操作

多态性:多个操作具有相同的名字,但接受的消息类型不同;统一操作被不同类型独享调用时可产生不同的行为,是指子类重写父类方法时,各自产生的自己的功能行为

类:变量有成员变量和局部变量 成员变量在类体内与方法同级  局部变量在类的成员方法中定义

成员变量有实例变量与类变量: 类变量是用static进行修饰的  否则是实例变量 当成员变量隐藏想在方法中使用时,使用this  

使用static修饰的方法是类方法,否则是实例方法

Java的对象在堆中分配内存,对象的引用(可以认为是名字)在栈中分配内存

关于static关键字,对象之间共享类变量,类方法不能调用实例方法,因为类创建对象之前,实例成员变量还没有分配内存,实例方法也没有入口地址

关于this关键字:代表当前对象当前类

  • 在构造方法中使用this 表示使用该构造方法创建的对象
  • 在实例方法中使用this 表示调用该方法的当前对象

关于访问权限:

private : 在其他类下创建该类的对象时,不能访问该类的属性和方法

protected: 和本类在同一包下的可以访问本类的protected属性和方法 与 友好类 类似

public:可以通过类名来操作其public修饰的成员变量和方法

自动装箱与拆箱是基本类型数据和相应对象之间相互自动转换的功能。

反编译器 javap.exe将字节码反编译为源码

文件生成器javadoc.exe 制作源文件的HTML格式文档

四、继承与接口

class student extends people{        };

子类与父类在同一包中的继承:子类可以继承父类非私有类的变量和方法

不在同一包中:可继承受保护类和共有类,不能继承父类的友好变量和方法

方法重写 override:是指在子类中定义一个方法,这个方法的类型和父类的方法的类型一致,名字参数等完全相同,由此可以隐藏继承的方法,当使用被隐藏的方法时需要使用关键字super

子类不继承父类的构造方法,使用super可以,没有参数super()时默认继承无参的构造方法

final关键字:final类不能被继承 final方法不允许被重写 final常量需要指定值并且不能发生变化

对象的上转型对象:A a ; B b = new B(); a = b; 或者A a; a = new B();则a是b的上转型对象,上转型对象可以操作可以访问子类继承或隐藏的成员变量,也可以调用子类继承的方法或子类重写的方法

abstract 抽象:不能使用final和abstract同时修饰一个类 修饰方法和类,对于abstract方法只能声明,不能实现,继承抽象类的抽象方法时,必须进行重写抽象方法

接口:interface 接口名{

public final int MAX=100;  // 等价于 int MAX=

public abstract void add();   // void  add();

public abstract float sum(float x, float y);

}

一个类可是实现多个接口 接口体中只有抽象方法,访问权限都是public

接口的使用: class A implements  Addable(表示类A实现接口Addable)

一个类实现某个接口,必须实现这个接口中的所有方法,方法时public abstract修饰的,实现以后,明显的使用public来修饰

五、常用实用类

String类

int .length() 字符串的长度

boolean .equals(String s) 比较字符串试题是否相等

int compareTo(String s)按照字典序和S进行比较大小,大于S返回正值

boolean contains(String s) 判断当前字符串对象是否含有s

int indexOf(String s) 返回位置索引,没有就返回负数

String trim() 去掉字符串前后空格

String substring(int start, int end) 返回子串

基本数据类型的相互转化:

int parseInt(String s)  或者short long Float等

对象的字符串表示:

String toString()  可以对这个方法进行重写

StringBuffer类

创建的是可修改的字符串序列

可以使用append进行追加

char charAt(int n) 得到参数n位置上的单个字符

void setCharAt(int n, char ch) 将N处的字符串进行替换

猜你喜欢

转载自blog.csdn.net/slyslyme/article/details/88225001