当前位置:首页 » 编程语言 » java代码块是什么

java代码块是什么

发布时间: 2023-11-18 20:16:56

‘壹’ java中 包、块、类、对象、都什么意思啊,能举例子说明吗,初学者学习

2.Java中的类和对象【第一部分草案】 收藏
(本章的学习量相对比较大,我把整体分为三个部分讲解,第一个部分和第二个部分为Java关于类和对象以及OO的基础,第三个部分为在OO设计技巧中针对Java程序的一些性能提升的小技巧,因为尽量保证Java关于类和对象的基本概念以及关键知识点都能够涉及到,一是为了方便查询,二是按照常用的关键点来进行的整理,其中的关键点都是在开发过程中的一些相关内容涉及,所以本文特意提供了一个目录进行检索。类和对象属于面向对象的基本概念,在开发过程中,需要掌握了对象和类的基本思想过后才明白如何进行OO设计,Java本身是纯面向对象的语言,这篇文章的主要目的是针对Java里面一些关于类和对象的基本操作进行简单的讲解,若有笔误,请来Email提点,谢谢:[email protected]
本文目录:【蓝色部分为本章的目录】
1.基本概念
2.Java变量相关
1)Java变量分类
2)Java中变量的初始化
3)Java变量修饰符和访问
4)Java类修饰符[不包含内部类]
3.Java涉及OO的关键知识点【主体】
1)继承的基本概念
2)抽象类、接口、final类:
3)重载和重写:
4)对象的拷贝[深拷贝和浅拷贝]:
5)关键字this、super
6)Java中的inlining[内联]
7)带继承的构造函数以及构造顺序
8)谈谈Object中的方法:equals、hashCode、toString
9)带继承的类型转换以及转换中关于成员变量和成员函数的调用
10)Java语言中的反射
11)按引用传递和值传递原理
12)Java中的包和导入
13)匿名类和内部类
4.Java编程OO设计技巧
1)对象创建以及周期
2)对象属性设置
3)垃圾回收
4)继承、接口、抽象类
5.总结

1.基本概念:
类和对象:OO里面什么称为类,类一般性我们定义为创建对象的一个蓝图,当我们根据某个类创建了一个对象的时候,我们就说该对象是这个类的一个实例(instance),类描述了某些对象的基本结构,是对对象的相关属性的一种定义,它定义了对象所具有的属性、方法、事件等各种基本点。
类设计的关键概念:封装是对象在工作的时候的一个关键概念,也是我们在进行OO设计的时候的一个需要掌握的点,封装简单讲就是将对象内部的一些细节实现隐藏起来不对外公布,仅仅对外公布某个对象能够提供的操作结果,从而实现信息隐藏的目的。在封装过程,对象内的数据我们一般称为成员变量(instance fields),对象内针对这些数据执行的操作我们可以叫做操作方法(成员函数)(methods),一个对象这些属性的集合所反映出来的就是该对象的状态。
在Java里面,所有的复合数据都是从Object类继承而来的,这一点可以通过使用Java反射去获取父类的名称来获得。
对象:在OO设计里面,对象有几个需要掌握的基本点:
对象的行为:对象的行为指代的是这个对象能够做什么,不能做什么,包括这个对象有哪些接口是对外提供了我们可以直接进行使用等相关概念。
对象的状态:对象的状态指代的是在程序运行过程,某个对象实例的一些属性发生了相关的变化过后产生的一个对象状态,在ORM设计中我们经常会遇到对象状态的操作。
对象的标识:对象的标识指代的是这个对象如何区别于其他对象,即是是同一个类产生的新实例,其本质上讲它们属于两个不同的对象,而不应该是同一个对象。
类与类的关系:
依赖(Dependence):依赖关系简单讲就是users-a的关系,两个类创建的对象实例本身没有任何关系,在编程过程反映出来的就是两个对象在相互之间的调用关系,比如某个对象在执行它自己的行为的时候调用了其他对象的方法这些相关操作都属于users-a的基本关系,或者说在某个Class里面使用了其他Class来定义成员变量。
组合(Aggregation):组合关系可以认为是has-a的关系,这种关系的两个类存在一个包含关系,很容易理解就是比如某个类包含了另外一个类,这种概念严格上讲不在操作,主要是成员变量,比如一个用户有个姓名属性成为NameInfo,然后这个NameInfo定义为一个包含了两个String的对象,一个是FirstName,另外一个是LastName,这种情况可以认为该对象本身和NameInfo之间的关系是has-a的关系。
继承(Inheritance):继承关系属于is-a的关系,这种关系意味着两个类存在父类(superclass)和子类(subclass)的概念,Java里面使用extends和implements两个关键字来体现两个类的集成关系。
(上边这些概念基本上在各种OO语言学习的开篇都会遇到,没什么特殊的,所以熟悉的人可以不用去了解)
Java中的Class:
预定义Class:在Java里面,什么称为预定义Class,学过Java的人都知道,JVM会在我们编写java程序的时候默认载入包java.lang,而java.lang里面已经存在了很多Class,这种Class就属于预定义的Class;不仅仅如此,以及Java API里面提供的Network相关类、IO相关类、XML相关类,这些可以不需要我们自定义,只需要import过后就可以直接使用的类就属于预定义的类。预定义类的各种使用方法可以参考JDK的API文档,里面针对目前存在的很多类都有详细的描述信息,有些类还提供了我们所需要的相关使用Demo可做参考。
一些代码的使用例子。
自定义Class:如果我们要使用自己的Class就需要在Java中自己定义Class,定义语法如下:
class UserInfo{
……
}
使用该语法我们就可以定义一个属于自己的Class,而在Class里面我们就可以根据自己的需求来设计相关成员变量和成员函数以及其他相关信息。

2.Java变量:
1)Java中的变量分为四种:类变量(又称为静态变量)、实例变量、局部变量、块变量
类变量——类变量只能在一个class域里面进行定义,同样只能在类里面使用,使用关键字为static关键字,这种变量可以直接通过Class.VAR的方式来调用,而且不需要对象实例存在就可以调用,它的执行原理在于当JVM的类加载器将类加载进来的时候,这个变量就已经存在的,而且可以使用了。定义方式和调用方式如下,下边的A就属于类变量:
class UserInfo{
static int A;
public static void main(String args[])
{
System.out.println(UserInfo.A);
}
}

‘贰’ Java中,构造代码块和构造函数有什么区别

构造代码块:是给所有的对象进行初始化,也就是说,所有的对象都会调用一个代码块,只要对象一建立,就会调用这个代码块。
构造函数:是给与之对应的对象进行初始化,它具有针对性。

‘叁’ Java 逻辑代码块是什么

java逻辑代码块是指使用{}大括号内的代码片段,为了实现某种逻辑和主类区分开来的一段代码。分为静态代码块、普通代码块,示例如下:

/**
*静态代码块先于构造器执行普通块先于构造块只执行一次
*凡是静态的与对象无关,先于对象存在的;凡是静态的都是共享的
*
*/
publicclassTest{
static{//静态代码块
System.out.println("static");
}

{
System.out.println("普通块2");
}
publicTest(){
System.out.println("构造器");
}

‘肆’ Java常见代码块的作用与区别

1. 局部代码块
作用在方法当中,作用是控制变量的生命周期:
public void show(){
{
System.out.println("局部代码块运行!");
}
}123456

在程序中当我们定义完成一个局部变量x之后,并且在接下来的代码中,不想再用到它时,那么就没必要让x在内存中继续占用空间。因此就有了局部代码块。
2. 构造代码块
作用在类的定义Body中,作用是给类的部分字段统一初始化:
public class Apple {
private String size;

//构造代码块
{
System.out.println("构造代码块运行!");
size = "E";
}
}
12345678910

构造代码块与构造函数的区别是:构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象初始化,因为构造函数是可以多个的,运行哪个构造函数就会建立什么样的对象,但无论建立哪个对象,都会先执行相同的构造代码块。也就是说,构造代码块中定义的是不同对象共性的初始化内容。所以理所当然的,构造代码块在构造函数之前执行。
3. 静态代码块
作用有两个:
(1)给类的静态变量赋值;
(2)声明静态变量;
作用在类的Body中,对类中的静态变量初始化:
public class APP {
static int x, y; // 静态变量

static {
x = 5; // 给静态变量x赋值
}

public static void myMethod() {
y = x++ + ++x; // x++ 先使用x的值再加1;++x先加1再使用x的值
}

public static void main(String[] args) {
x--;
myMethod();
System.out.println(x + y + ++x);
}
}

输出:23

热点内容
withassql嵌套 发布:2025-01-27 13:57:41 浏览:939
探歌选哪个配置性价比高些 发布:2025-01-27 13:55:41 浏览:705
IR实现编译器 发布:2025-01-27 13:30:38 浏览:459
android图片过大 发布:2025-01-27 13:30:34 浏览:426
公司服务器怎么搭建网站 发布:2025-01-27 13:24:43 浏览:920
光可以存储 发布:2025-01-27 13:14:47 浏览:676
手机网盘加密文件 发布:2025-01-27 13:11:43 浏览:694
唐山有线机顶盒密码是多少 发布:2025-01-27 13:10:25 浏览:251
如何让电脑上拥有移动式服务器 发布:2025-01-27 13:04:46 浏览:67
漫威超级战争如何配置核心组合 发布:2025-01-27 13:03:19 浏览:954