Java基础理论知识
注:本篇主要针对初学java者,对java各种实例样式,一些容易混淆的知识点做一个分析。
1、万物皆为对象,类是蓝图与模板。对象有属性与方法。
类实例:
package domain;
public class Person {
private String name;
private int age;
private char gender;
public Person() {
}
public Person(String name, int age, char gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public char getGender() {
return gender;
}
public void setGender(char gender) {
this.gender = gender;
}
public void running(String str){
System.out.println("女孩子跑步就是好看");
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + ", gender=" + gender
+ "]";
}
}
2、创建对象实例:
Person a = new Person(“王大锤”,“20”,“男”); (实例化对象是通过调用对象的构造函数完成的,这里调用就是上面类第二个构造器)
3、静态代码块实例:
public class Person {
static{
System.out.println("静态代码");
};
}
——静态代码格式:static{//code};
——特点;随着类的加载而执行,并且只会执行一次,并且还优先于主函数。作用;用于给类进行初始化函数。
——作用:可以用于初始化静态成员;
4、构造函数块实例:
public class Person {
{
System.out.println("构造函数块");
};
}
——格式:{//code};
——构造函数块是随着对象的创建而加载一次,实例初始化代码块中的语句在任何父类构造器调用之后,在子类构造器调用之前执行。
5、构造函数实例:
public class Person {
public Person(){}; //无参构造器
public Person(String name, int age, char gender) {
this.name = name;
this.age = age;
this.gender = gender;//有参构造器
}
}
——格式:public 类名 (参数){//参数赋值code}
——构造器能被重载,所以一个类可以有多个构造器,当有有参构造器时默认无参构造器就会被覆盖,所以需要手动添加
6、静态代码块、父类构造器、构造函数块、子类构造器的加载顺序;
对象时加载次序:静态代码块(只加载一次)→→父类构造器→→ 构造函数块(类每次创建加载一次)→→子类构造器;
7、方法实例:
public void mothod(String str){
System.out.println("方法实例");
}
——方法格式:访问修饰符 返回参数类型 方法名(参数){//code}
——首先访问修饰符的类型有四种:public protected default private ;
——返回类型可以是:8种基本类型,引用类型,void;
——方法名:首字母小写,单词之间最好遵循驼峰标志;
——如果有返回值,方法内必须要有return 关键字和返回值。
——(强调一次,java中只有值传递,没有引用传递。)
8、抽象类实例:
public abstract class abstractName {
public abstract void mothod1();//抽象方法
};
——抽象类格式:访问修饰符 抽象关键字 class 抽象类名{//自定义抽象方法 }
——在抽象类可以有自己的属性,可以有自己的构造函数,可以写set和get方法,可以有具体方法的实现;但是不能被实例化;
——抽象类是拿来继承的;一般类能继承抽象类;
——抽象类能继承一般体类;抽象类继承抽象类;抽象类能实现接口;
9、接口实例:
public interface interfaceName {
void mothod1();//接口方法
void mothod2();//接口方法
};
——接口格式:访问修饰符 interface 接口名{};
——接口中只能定义静态的常量: 任何类型 final, static 字段。
——接口中定义的方法都默认是公开的,所以方法可以省略 public abstract 关键字
——接口没有构造函数,不能被实例化;
——接口是拿来实现的;一般类能实现接口,也能同时实现多个接口;
——接口只能继承接口;
10、抽象方法实例:
public abstract class abstractName {
public abstract void mothod1();//抽象方法
};
——抽象方法格式:public abstract 返回类型 mothodName (参数);
——只要有抽象方法的类,就必须写成抽象类。但是没有抽象方法的类也能声明成抽象类
11、继承类实例
public class Person{}
public class Girl extends Person{}
——继承类格式:访问修饰符 类名 继承关键字 继承类名 { }
——接口能继承接口,继承只能是单继承,java只支持单继承
12、实现接口实例:
public class Girl implements Person(){ };
——实现接口格式:访问修饰符 class 类名 实现关键字 被实现接口或抽象类;
——实现可以是多实现,多个被现实类之间用逗号分隔
13、数组创建格式
——List<> list = new ArrayList<>();
——int[] a=new int[o];
——rivate String[] name ={"","","",""};
14、重载与重写:
——重载是指在一个类里面,有多个同名方法,但是参数类型,参数个数,参数顺序的不同;调用者调用而选择不同方法;
——重写是指在有继承关系的两个类里面,子类对一个方法的重新实现,方法名,返回类型都得一样。
15、this与super
——this是对类对象本身的引用,this'还可以用于调用本类的构造器。
——super是指在子类或者重新实现功能的类里面,用super可以调用到父类的属性和方法。
16、内部类
——静态类部类,作为类的静态成员,存在于某个类的内部;
——成员内部类,作为类的成员,存在于某个类内部;要通过外部类创建内部类
——局部内部类,存在于某个方法内部的类;只能在方法体中使用,一旦方法执行完,内部类就会被回收;
——匿名内部类,存在于某个类的内部,但是无类名的类;new 接口或者一个类;
——.实例化的格式。就地实例化和匿名内部类。
17、面向对象的四大支柱;
——封装:隐藏一切能隐藏的,只向外界提供最简单的访问编程接口。
——继承:继承就是从已有的类得到信息创建新类的过程。
——多态:是指允许不同的子类型对象对同一消息做出不同的响应。多态又分为编译时多态和运行时多态;分别通过重载和重写来实现。
——抽象:是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。
18、javabean(标准Java类)
——必须有无参构造器
——必须为私有属性提供标准的set和get方法
——应该实现序列化
19、形参与实参
——行参是作为方法的参数传递,没有被赋值;
——实参,是指被赋值了的参数不能被改变;
20、get与set
——get访问器,是拿到。
——set修改器,是赋值。
21、多态:
.方法的重写与重载
.对象的多态性:上转型会自动完成(父类 父类对象=子类实例)下转型要强转(子类 子类对象=(子类)父类实例
.instanceof 判断左边的对象是不是右边的实例,如果是返回ture,如果不是返回false。
23、各种方法的调用:
.类调用自己的方法,直接方法名就行;
.调用其他非静态类的方法,需要先实例化对象,然后对象打点调用方法;
.调用静态类的静态方法,直接类名打点调用;(注意:静态方法不能直接调用非静态方法,需要进行对象实例化以后用对象打点调用。)
24、在一个类里调用构造函数要用this。调用父类的构造器要用super,而且要写在子类构造函数的第一行。
实例:public Girl(String dance) {
super();//继承父类构造器
this.dance = dance;
}
25、重写与重载的异同:@OverWrite与@OverLoaded
1.重写必须继承,重载不用(注解:重写发生子父类之间,重载需在当前类之中)
2.重写的方法名、参数类型、数目、参数顺序、返回类型需要一致,重载只需要方法名一致。
3.重写的访问修饰词的访问级别必须等于或大于原始方法,重载与访问修饰词无关。
4.重写不能比父类声明更多的异常,可以抛出运行时异常
26、抽象类与接口异同:
1.抽象类的成员可以据有访问级别,接口中的所有成员都是public。
2.抽象类中可以有自己的私有属性,接口中只能有公开的方法,如果有变量是也公开静态的成员变量(类变量)。
3.抽象类可以继承接口,接口不能继承抽象类。
4.抽象类可以有具体实现,而接口不行。
5.抽象类的子类可以选择性的实现一些方法(这种叫适配器模式),接口需要全部实现。
27、变量:
1.局部变量(作用域于方法内部)
2.方法参数(作用域整个方法体)
3.成员变量(作用域整个类和以及能访问他的子类等)
4.类变量(作用域整个类,访问类名打点直接访问)
28、foreach循环样式:
for(类型 变量:数组|集合){
//每一次循环会自动将数组内的内容设置给变量,foreach循环支持数组的直接访问,避免的了索引访问带来的麻烦。
}
Java基础理论知识的更多相关文章
- java基础理论知识的一些总结
在学习Java初期,由于我们是刚开始接触Java,我们不仅需要牢牢掌握Java的基础理论知识,来为我们后面对Java更深层次的学习打好基础,而且我们需要养成编程人的思想习惯.来我们一起来探索Java基 ...
- java基础知识面试总结-部分
前言 在平时的工作学习中,自己对微服务和springboot基础理论知识关注比较少,在面试中对于面试官的问题,很多基本都不能够达到精准,全面:现将自己面试中的问题做以总结: 1.谈谈你对微服务架构的认 ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- java基础知识小总结【转】
java基础知识小总结 在一个独立的原始程序里,只能有一个 public 类,却可以有许多 non-public 类.此外,若是在一个 Java 程序中没有一个类是 public,那么该 Java 程 ...
- Java基础知识系列——String
最近晚上没有什么事(主要是不加班有单身),就复习了一下Java的基础知识.我复习Java基础知识主要是依据Java API和The Java™ Tutorials. 今天是第一篇,复习了一下Strin ...
- 学习Spring必学的Java基础知识
[1] Java反射知识-->Spring IoC :http://www.iteye.com/topic/1123081 [2] Java动态代理-->Spring AOP :http: ...
- 学习android学习必备的java基础知识--四大内部类
学习android必备的java基础知识--四大内部类 今天学习android课程,因为我的主专业是JAVA,但是兴趣班却有这其他专业的同学,学习android 需要具备一些java的基础知识,因此就 ...
- JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)
本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...
- java基础知识梳理
java基础知识梳理 1 基本数据类型
随机推荐
- PMP和PRINCE2
首先先简单介绍一下,PMP是属于美国的项目管理知识体系.PRINCE2是属于英国项目体系. 美国的项目管理知识体系最主要的价值是把世界上所有跟项目管理相关的,不管是知识.最佳实践.工具技术,把它们汇总 ...
- Node.js与Sails~日志机制log
回到目录 看到Sails的日志就会想起来log4net,确实它们在很多地方是相似的,都是采用分级别记录的方式,而sails我觉得在使用上更加方便,它不需要我们做多于的事情,直接sails.log.级别 ...
- Atitit 电子商务订单号码算法(java c# php js 微信
Atitit 电子商务订单号码算法(java c# php js 微信 1.1. Js版本的居然钱三爷里面没有..只好自己实现了. 1.2. 订单号标准化...长度16位 1.3. 订单号的结构 前 ...
- python 反射的使用
反射这个功能在很多编程语言中都有,在Python中自然也不例外.其实编程语言中的很多功能都能用简单的代码来验证. 在code代码之前,先简单的了解下反射的几个属性. hasattr(obj,name_ ...
- 那些年我们一起过的JS闭包,作用域,this,让我们一起划上完美的句号。
之前有写过闭包,作用域,this方面的文章,但现在想想当时写的真是废话太多了,以至于绕来绕去的,让新手反而更难理解了,所以就有了此篇文章,也好和闭包,作用域,this告一段落. 第一个问题:什么是闭包 ...
- Node学习
参见Node入门 做出node应用的第一个例子 图片上传浏览.
- Topology and Geometry in OpenCascade-Vertex
Topology and Geometry in OpenCascade-Vertex eryar@163.com 摘要Abstract:本文简要介绍了几何造型中的边界表示法(BRep),并结合程序说 ...
- HTML5之废弃和更新的元素与属性
废弃的元素和属性 [1]标签替换 <acronym> 替代:<abbr> <applet> 替代:<embed> 或 <object> &l ...
- Ext.grid.CheckboxSelectionModel状态设置
直接上代码: var model = grid.getSelectionModel(); model.selectAll();//选择所有行 model.selectFirstRow();//选择第一 ...
- selenium-webdriver(python) (十五) -- 鼠标事件
本节重点: ActionChains 类 context_click() 右击 double_click() 双击 drag_and_drop() 拖动 测试的产品中有一个操作是右键点击文件列 ...