当前位置: 首页 > news >正文

网站企业建设方案怎样攻击网站

网站企业建设方案,怎样攻击网站,自己怎么做logo图标,vps如果制作论坛网站类与对象类中主要包括五种结构#xff0c;下面进行对这五种结构进行详细的介绍。1. 面向对象与面向过程面向过程#xff1a;强调的是功能行为#xff0c;以函数为最小单位#xff0c;考虑怎么做。面向对象#xff1a;强调具备了功能的对象#xff0c;以类/对象为最小单位…类与对象类中主要包括五种结构下面进行对这五种结构进行详细的介绍。1. 面向对象与面向过程面向过程强调的是功能行为以函数为最小单位考虑怎么做。面向对象强调具备了功能的对象以类/对象为最小单位考虑谁来做。--唯物主义(物质决定意识)2. 类与对象的关系类对一类事物的描述是抽象的、概念上的定义对象是实际存在的该类事物的每个个体因而也称为实例(instance)面向对象程序设计的重点是类的设计设计类就是设计类的成员。二者的关系对象是由类new出来的派生出来的。3. 面向对象思想实现的规则创建类设计类的成员创建类的对象通过对象.属性 或 对象.方法调用对象的结构补充几个概念的使用说明属性 成员变量 field 域、字段方法 成员方法 函数 method创建类的对象 类的实例化 实例化类4. 对象的创建与对象的内存解析典型代码Person p1 new Person(); Person p2 new Person(); Person p3 p1;//没有新创建一个对象共用一个堆空间中的对象实体。 /*说明 *如果创建了一个类的多个对象则每个对象都独立的拥有一套类的属性。(非static的) *意味着如果我们修改一个对象的属性a则不影响另外一个对象属性a的值。 */内存解析5. JVM内存结构编译完源程序以后生成一个或多个字节码文件。我们使用JVM中的类的加载器和解释器对生成的字节码文件进行解释运行。意味着需要将字节码文件对应的类加载到内存中涉及到内存解析。虚拟机栈即为平时提到的栈结构。我们将局部变量存储在栈结构中虚拟机堆我们将new出来的结构(比如数组、对象)加载在对空间中。补充对象的属性(非static的)加载在堆空间中。方法区类的加载信息、常量池、静态域6. 匿名对象:我们创建的对象没显式的赋给一个变量名。即为匿名对象特点匿名对象只能调用一次。new Phone().sendEmail(); new Phone().playGame();new Phone().price 1999; new Phone().showPrice();//应用场景PhoneMall mall new PhoneMall();//匿名对象的使用 (new Phone()); 其中 class PhoneMall{public void show(Phone phone){();();} }7. 万事万物皆对象在Java语言范畴中我们都将功能、结构等封装到类中通过类的实例化来调用具体的功能结构Scanner,String等文件File网络资源URL涉及到Java语言与前端HTML、后端的数据库交互时前后端的结构在Java层面交互时都体现为类、对象。类的结构之一属性1. 属性 vs 局部变量 相同点定义变量的格式数据类型 变量名 变量值先声明后使用变量都其对应的作用域 不同点.1 在类中声明的位置的不同属性直接定义在类的一对{}内局部变量声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量。.2 关于权限修饰符的不同属性可以在声明属性时指明其权限使用权限修饰符。常用的权限修饰符private、public、缺省、protected ---封装性目前声明属性时使用缺省就可以。局部变量不可以使用权限修饰符。.3 默认初始化值的情况属性类的属性根据其类型都默认初始化值。整型(byte、short、int、long0)浮点型(float、double)字符型(char0 (或\u0000))布尔型(booleanfalse)引用数据类型(类、数组、接口null)局部变量没默认初始化值。意味着我们在调用局部变量之前一定要显式赋值。特别地形参在调用时我们赋值即可。.4 在内存中加载的位置属性加载到堆空间中 (非static)局部变量加载到栈空间2. 变量的分类方式一按照数据类型方式二按照在类中声明的位置类的结构之二方法定义描述类应该具备的功能。1. 方法举例 JDK中的方法Math类sqrt() random() ...Scanner类nextXxx() ...Arrays类sort()binarySearch()toString()equals() ... 自定义的方法public void eat(){(我要吃饭); }public String getNation(String nation){(当前地点为 nation); } 方法的声明权限修饰符 返回值类型 方法名(形参列表){方法体}注意static、final、abstract 来修饰的方法后面再聊。2. 方法的说明 关于权限修饰符Java规定的4种权限修饰符private、public、缺省、protected详细内容请查看文章《细说面向对象三大特征》 返回值类型2. 返回值 vs 没返回值如果方法有返回值则必须在方法声明时指定返回值的类型。同时方法中需要使用return关键字来返回指定类型的变量或常量return 数据。如果方法没返回值则方法声明时使用void来表示。通常没返回值的方法中就不需要使用return。如果使用的话只能使用 return; 表示结束此方法的意思。.2 方法该不该定义返回值题目要求具体问题具体分析 方法命名规范属于标识符遵循标识符的规则和规范“见名知意”方法名应遵循小驼峰命名 aaaBbbCcc方法名最好使用英文单词不要使用拼音或者缩写更多规范要求请参考《Java开发手册》 关于形参列表方法可以声明0个1个或多个形参。也可以使用可变形参但可变形参必须放到最后详细说明请查看本章第五部分。格式数据类型1 形参1, 数据类型2 形参2 .....定义方法时该不该定义形参题目要求具体问题具体分析 方法体是方法中功能的体现通过循环分支、条件判断等语句完成复杂的逻辑关系。方法中可以调用其他方法同类中可以直接调用不同类中通过类的实例化对象调用。注意方法中不可以定义新的方法3. 方法的使用同类中的方法可以直接调用当前类的属性或方法不同类中通过类的实例化对象调用。特殊的方法A中又调用了自身---递归方法。(自身调用)关于递归方法的使用请查看本章第七部分。4. 方法的重载 重载的概念在同一个类中允许存在一个以上的同名方法只要它们的参数个数或者参数类型不同即可。两同一不同:相同同一个类、相同方法名参数列表不同参数个数不同参数类型不同 构成重载的实例// 举例一Arrays类中重载的sort() / binarySearch()PrintStream中的println() // 举例二 // 如下的4个方法构成了重载 public void getSum(int i,int j){(1); }public void getSum(double d1,double d2){(2); }public void getSum(String s ,int i){(3); }public void getSum(int i,String s){(4); }不构成重载的实例// 如下的3个方法不能与上述4个方法构成重载 public int getSum(int i,int j){return 0; }public void getSum(int m,int n){}private void getSum(int i,int j){} 重载方法判断如何判断是否构成方法重载严格按照定义判断两同一不同。跟方法的权限修饰符、返回值类型、形参变量名、方法体都没关系如何确定类中某一个方法的调用①方法名 --- ②参数列表5. 可变个数形参方法 使用说明JDK 5.0新增的内容JDK 5.0以前采用数组形参来定义方法传入多个同一类型变量public static void test(int a String[] books);JDK 5.0以后采用可变个数形参来定义方法传入多个同一类型变量public static void test(int a String ... books);具体使用可变个数形参的格式数据类型... 变量名当调用可变个数形参的方法时传入的参数个数可以是0个1个,2个.....可变个数形参的方法与本类中方法名相同形参不同的方法之间构成重载可变个数形参的方法与本类中方法名相同形参类型也相同的数组之间不构成重载。换句话说二者不能共存。可变个数形参在方法的形参中必须声明在末尾。可变个数形参在方法的形参中,最多只能声明一个可变形参。 举例说明public void show(int i){}public void show(String s){(show(String)); }public void show(String ... strs){(show(String ... strs));for(int i 0;i ){(strs[i]);} } // 不能与上一个方法同时存在 // public void show(String[] strs){ // // } // 调用时可变形参与数组类似 (hello); (hello,world); ();(new String[]{AA,BB,CC});6. Java的值传递机制 针对方法内变量的赋值举例(***********基本数据类型****************); int m 10; int n m;(m m , n n);n 20;(m m , n n);(***********引用数据类型****************);Order o1 new Order(); o1.orderId 1001;Order o2 o1;//赋值以后o1和o2的地址值相同都指向了堆空间中同一个对象实体。(o1.orderId o1.orderId , ); 1002;(o1.orderId o1.orderId , );规则 如果变量是基本数据类型此时赋值的是变量所保存的数据值。 如果变量是引用数据类型此时赋值的是变量所保存的数据的地址值。 针对于方法的参数概念形参方法定义时声明的小括号内的参数 实参方法调用时实际传递给形参的数据6.3 Java中参数传递机制值传递机制规则如果参数是基本数据类型此时实参赋给形参的是实参真实存储的数据值。如果参数是引用数据类型此时实参赋给形参的是实参存储数据的地址值。推广如果变量是基本数据类型此时赋值的是变量所保存的数据值。如果变量是引用数据类型此时赋值的是变量所保存的数据的地址值。 内存解析内存解析画法要点内存结构栈(局部变量)、堆(new出来的结构对象(非static成员变量)、数组变量成员变量 vs 局部变量(方法内、方法形参、构造器内、构造器形参、代码块内)举例一举例二7. 递归方法递归方法一个方法体内调用它自身。方法递归包含了一种隐式的循环它会重复执行某段代码但这种重复执行无须循环控制。 递归一定要向已知方向递归否则这种递归就变成了无穷递归类似于死循环。递归方法举例// 例1计算1-n之间所自然数的和 public int getSum(int n) {// 3if (n 1) {return 1;} else {return n getSum(n - 1);}}// 例2计算1-n之间所自然数的乘积:n! public int getSum1(int n) {if (n 1) {return 1;} else {return n * getSum1(n - 1);}}//例3已知一个数列f(0) 1,f(1) 4,f(n2)2*f(n1) f(n), //其中n是大于0的整数求f(10)的值。 public int f(int n){if(n 0){return 1;}else if(n 1){return 4;}else{// return f(n 2) - 2 * f(n 1);return 2*f(n - 1) f(n - 2);} }//例4斐波那契数列//例5汉诺塔问题//例6快排8. 方法的重写 什么是方法的重写(override 或 overwrite)子类继承父类以后可以对父类中同名同参数的方法进行覆盖操作. 重写的应用重写以后当创建子类对象以后通过子类对象调用子父类中的同名同参数的方法时实际执行的是子类重写父类的方法。 重写举例// 父类 class Circle{ public double findArea(){}//求面积 } // 子类 class Cylinder extends Circle{ public double findArea(){}//求表面积 } ********************************************** // 父类 class Account{ public boolean withdraw(double amt){} } // 子类 class CheckAccount extends Account{ public boolean withdraw(double amt){} } 重写的规则方法的声明权限修饰符 返回值类型 方法名(形参列表) throws 异常的类型{//方法体 }约定俗成子类中的叫重写的方法父类中的叫被重写的方法子类重写的方法的方法名和形参列表与父类被重写的方法的方法名和形参列表相同子类重写的方法的权限修饰符不小于父类被重写的方法的权限修饰符特殊情况子类不能重写父类中声明为private权限的方法返回值类型 父类被重写的方法的返回值类型是void则子类重写的方法的返回值类型只能是void父类被重写的方法的返回值类型是A类型则子类重写的方法的返回值类型可以是A类或A类的子类父类被重写的方法的返回值类型是基本数据类型(比如double)则子类重写的方法的返回值类型必须是相同的基本数据类型(必须也是double)子类重写的方法抛出的异常类型不大于父类被重写的方法抛出的异常类型(具体放到异常处理时候讲)子类和父类中的同名同参数的方法要么都声明为非static的(考虑重写要么都声明为static的(不是重写)。开发中一般保持子父类一致 面试题区分方法的重写和重载二者的概念方法的重写子类继承父类以后可以对父类中同名同参数的方法进行覆盖操作.方法的重载在同一个类中允许存在一个以上的同名方法只要它们的参数个数或者参数类型不同即可。重载和重写的具体规则多态性从编译和运行的角度看重载是指允许存在多个同名方法而这些方法的参数不同。编译器根据方法不同的参数表对同名方法的名称做修饰。对于编译器而言这些同名方法就成了不同的方法。它们的调用地址在编译期就绑定了。Java的重载是可以包括父类和子类的即子类可以重载父类的同名不同参数的方法。所以对于重载而言在方法调用之前编译器就已经确定了所要调用的方法这称为“早绑定”或“静态绑定”而对于多态只等到方法调用的那一刻解释运行器才会确定所要调用的具体方法这称为“晚绑定”或“动态绑定”。引用一句Bruce Eckel的话“不要犯傻如果它不是晚绑定它就不是多态。”类的结构之三构造器1. 构造器(或构造方法)Constructor构造器的作用(只要造对象就得用构造器)创建对象初始化对象的信息2. 使用说明如果没显式的定义类的构造器的话则系统默认提供一个空参的构造器定义构造器的格式权限修饰符 类名(形参列表){ }一个类中定义的多个构造器彼此构成重载一旦我们显式的定义了类的构造器之后系统就不再提供默认的空参构造器一个类中至少会有一个构造器。3. 构造器举例//构造器不等于方法 public Person(){(Person().....); }public Person(String n){name n;}public Person(String n,int a){name n;age a; }构造器默认权限和类的权限一致4. 属性赋值顺序总结属性赋值的先后顺序① 默认初始化② 显式初始化③ 构造器中初始化④ 通过对象.方法 或 对象.属性的方式赋值以上操作的先后顺序① - ② - ③ - ④5. JavaBean的概念所谓JavaBean是指符合如下标准的Java类类是公共的一个无参的公共的构造器属性且对应的get、set方法类的结构之四代码块代码块(初始化块)(重要性较属性、方法、构造器差一些)1. 代码块的作用用来初始化类、对象的信息2. 分类代码块要是使用修饰符只能使用static 分类静态代码块 vs 非静态代码块3. 静态代码块 vs 非静态代码块区别静态代码块内部可以输出语句随着类的加载而执行,而且只执行一次作用初始化类的信息如果一个类中定义了多个静态代码块则按照声明的先后顺序执行静态代码块的执行要优先于非静态代码块的执行静态代码块内只能调用静态的属性、静态的方法不能调用非静态的结构非静态代码块内部可以输出语句随着对象的创建而执行每创建一个对象就执行一次非静态代码块作用可以在创建对象时对对象的属性等进行初始化如果一个类中定义了多个非静态代码块则按照声明的先后顺序执行非静态代码块内可以调用静态的属性、静态的方法或非静态的属性、非静态的方法注意实例化子类对象时涉及到父类、子类中静态代码块、非静态代码块、构造器的加载顺序由父及子静态先行。运行顺序静态代码块 → 非静态代码块 → 构造器先调用父类静态代码块静态代码块随着类的加载而调用再调用子类静态代码块再调用父类非静态代码块非静态代码块随着对象的创建而调用再调用父类的构造器再调用子类的非静态代码块再调用子类的构造器。举例一class Root{static{(Root的静态初始化块);}{(Root的普通初始化块);}public Root(){(Root的无参数的构造器);} } class Mid extends Root{static{(Mid的静态初始化块);}{(Mid的普通初始化块);}public Mid(){(Mid的无参数的构造器);}public Mid(String msg){//通过this调用同一类中重载的构造器this();(Mid的带参数构造器其参数值 msg);} } class Leaf extends Mid{static{(Leaf的静态初始化块);}{(Leaf的普通初始化块);} public Leaf(){//通过super调用父类中有一个字符串参数的构造器super(调用父类构造器);(Leaf的构造器);} } public class LeafTest{public static void main(String[] args){new Leaf(); //new Leaf();} }运行结果Root的静态初始化块 Mid的静态初始化块 Leaf的静态初始化块 Root的普通初始化块 Root的无参数的构造器 Mid的普通初始化块 Mid的无参数的构造器 Mid的带参数构造器其参数值调用父类构造器 Leaf的普通初始化块 Leaf的构造器举例二class Father {static {(11111111111);}{(22222222222);}public Father() {(33333333333);} }public class Son extends Father {static {(44444444444);}{(55555555555);}public Son() {(66666666666);}public static void main(String[] args) { // 由父及子 静态先行(77777777777);(************************);new Son();(************************);new Son();(************************);new Father();} }运行结果77777777777 ************************ 11111111111 44444444444 22222222222 33333333333 55555555555 66666666666 ************************ 22222222222 33333333333 55555555555 66666666666 ************************ 22222222222 33333333333 4. 属性的赋值顺序① 默认初始化② 显式初始化 / ⑤在代码块中赋值③ 构造器中初始化④ 有了对象以后可以通过对象.属性或对象.方法的方式进行赋值执行的先后顺序① - ② / ⑤ - ③ - ④类的结构之五内部类内部类类的第五个成员1. 内部类的定义Java中允许将一个类A声明在另一个类B中则类A就是内部类类B称为外部类。2. 内部类的分类成员内部类(静态、非静态 ) 局部内部类(方法内、代码块内、构造器内)3. 成员内部类的理解一方面作为外部类的成员调用外部类的结构可以被static修饰可以被4种不同的权限修饰另一方面作为一个类类内可以定义属性、方法、构造器等可以被final修饰表示此类不能被继承。言外之意不使用final就可以被继承可以被abstract修饰4. 成员内部类 如何创建成员内部类的对象(静态的非静态的)// 创建静态的Dog内部类的实例(静态的成员内部类): Person.Dog dog new Person.Dog();// 创建非静态的Bird内部类的实例(非静态的成员内部类): // Person.Bird bird new Person.Bird();//错误的 Person p new Person(); Person.Bird bird p.new Bird(); 如何在成员内部类中调用外部类的结构class Person{String name 小明;public void eat(){}//非静态成员内部类class Bird{String name 杜鹃;public void display(String name){(name);//方法的形参();//内部类的属性(Person.);//外部类的属性//();}} }5.局部内部类的使用//返回一个实现了Comparable接口的类的对象 public Comparable getComparable(){//创建一个实现了Comparable接口的类:局部内部类//方式一// class MyComparable implements Comparable{//// Override// public int compareTo(Object o) {// return 0;// }// // }// // return new MyComparable();//方式二return new Comparable(){Overridepublic int compareTo(Object o) {return 0;}}; }注意点在局部内部类的方法中(比如show如果调用局部内部类所声明的方法(比如method)中的局部变量(比如num)的话,要求此局部变量声明为final的。原因局部内部类也会生成字节码文件在调用所属类的局部变量时因为是两个类所以不能修改所属类的属性因此所属类将属性设置为final的为内部类调用提供一个副本而内部类不能进行修改。jdk 7及之前版本要求此局部变量显式的声明为final的jdk 8及之后的版本可以省略final的声明总结成员内部类和局部内部类在编译以后都会生成字节码文件。字节码文件名格式成员内部类外部类$内部类名.class局部内部类外部类$数字 内部类名.class
http://www.zqtcl.cn/news/384715/

相关文章:

  • 海南海口网站开发公司怎么建立微网站?
  • 网站建设 鄂icp备app 微网站
  • 西安做网站seo网站站内优化怎么做
  • 建设网站方案公司wordpress 视差主题
  • 网站 建设 语言wordpress同步
  • 三水 网站建设建设部网站网上大厅
  • 深圳高端企业官方网站建设最好的网站设计开发公司
  • 主流大型网站开发语言调查怀柔富阳网站建设
  • 公司网站建设服务类别最便宜云主机永久免费
  • 心悦dnf免做卡网站竞价恶意点击犯法吗
  • 企业网站的类型包括无锡专业网站建设
  • 手机版刷赞网站建设软文代写文案
  • 网站内容与目录结构色一把做最好的网站
  • 优化网站方法企业做网站属于广告宣传费吗
  • 站长之家alexa排名网站架构 seo
  • 四川智能网站建设制作建设网站代理
  • 对网站建设好学吗智慧企业解决方案
  • 网站建站平台eazyshoph5制作微信小程序
  • 扬中网站建设 优帮云望野古诗带拼音
  • 网站和discuz同步登录建设产品网站课程
  • 常州做网站多少钱图片链接在线生成器
  • 服务器网站打不开可以做哪些网站
  • 建设银行网站信息补充网站如何备份
  • 网站建设 杭州市萧山区网页此站点不安全
  • 微网站免费开发平台钟表珠宝商城网站建设
  • 帮建网站的人wordpress广告栏
  • 怎么学建网站教做甜品网站
  • 建网站 服务器需要安装 tomcat安徽城乡建设 厅网站
  • 建筑公司企业简介模板关于网站优化的文章
  • 绥化网站建设兼职互联网大厂设计哪家口碑好