Java学习----day5——(3)面对对象程序设计基础篇(具体篇)
来源:互联网 发布:java源码保护 编辑:程序博客网 时间:2024/05/29 04:22
本文承接之前class设计
1.代码块
代码块分类:1.普通代码块 2.静态代码块 3.构造代码块
1.1普通代码块
按照顺序执行,调用即执行;只调用第一次实例化;
1.2 构造代码块
每次实例化对象即调用
1.3 静态代码块
调用优先级最高!不管是否在主函数内。!只调用一次;
package com.Example.chapter04; /** * @author Administrator * @function : 代码块的理解 * 1.普通代码块(11-15) * 2.构造代码块(17-19) * 3.静态代码块(24-26)不管产生多少引用,只调用一次 * */ public class CodeBlock { public static void main(String[] args) { new CodeBlock(); new CodeBlock(); new CodeBlock(); } { System.out.println("这是普通代码块"); } public CodeBlock(){ System.out.println("这是 ---------就是构造方法啦"); } static { System.out.println("这是静态代码块------就是用static标识的代码块"); }}
2.堆内存和栈内存详解(数组只是初步了解)
2.1堆内存
是完全不知道数据的储存方式,简单理解就是用来存储数组和对象的
2.2栈内存
需要知道数据的存储方式(C++里面碰见过一次,是把形参用到定义数组的长度,需要动态指针,即使用关键字new,我认为是使用堆内存进行初始化)。也就是说用来存储定义好的参数。
3.匿名类
不在栈内存中申请空间进行引用,new 类名();
上面代码块就用到了代码块的概念。
new Demo().outPut();
4.static关键字
1.首先,说个例子,统计该类被实例化多少次,定义变量static int count;count++;这下我们可以看出static的含义。2.全局变量和全局方法;3.需要注意的是静态方法只能调用静态变量;4.调用格式:类名.标识符;
package com.Example.chapter04; /** * @author Administrator * @function : Static的理解 * 1作为各个引用的共享资源 * 2通过类名直接调用 * 3static标明的方法中不能使用非static变量*/ public class StaticDesign { public StaticDesign(){ StaticDesign.count++; System.out.println("生成新的实例引用"+"\t这是第"+StaticDesign.count+"个实例"); } public int check=0; public static int count=0; public static void outPut(){ System.out.println("这是静态方法"); } public static void main(String args[]){ StaticDesign Demo1=new StaticDesign(); StaticDesign Demo2=new StaticDesign(); StaticDesign Demo3=new StaticDesign(); StaticDesign.outPut(); Demo1.outPut(); }}
5.this关键字
- 调用成员变量和成员方法
- 调用构造方法
- 表示当前对象
this()只能在构造函数直接互相调用必须放在函数体第一行,并且需要留出一个构造函数作为出口,即某一个构造函数不使用this();
package com.Example.chapter04; /** * @author Administrator * @function : this的三大特效 * 1.成员属性 * 2.构造方法 * 3.当前对象*/ public class ThisDesign01 { public static void main(String[] args) { PersonAgain personagain=new PersonAgain(23, "光唯"); personagain.getInfo(); }}class PersonAgain{ private int age; private String name; public PersonAgain(){ System.out.println("此处Person类无参构造函数发言"); } public PersonAgain(int age,String name){ this();//第二种 构造方法的调用 this.setAge(age); this.setName(name); System.out.println("此处Person类有参构造函数发言"+"\t姓名"+this.getName()+"\t年龄"+this.getAge()); } public void getInfo(){ System.out.println("试试第三种this的用法"+this); } public int getAge() { return age; } public void setAge(int age) { this.age = age;//第一种 成员变量的用法 } public String getName() { return name; } public void setName(String name) { this.name = name;//第一种 成员变量的用法 }}
6.私有属性的访问
- 本类引用传递
package com.Example.privateVisit; /** * @author Administrator * @date : 2017年3月26日 下午3:06:08 * @function : 本类传递访问私有属性 */ public class SelfConvey { private int temp=100; public void changeTemp(SelfConvey SC){ SC.temp=50; } public int getTemp(){ return this.temp; } public static void main(String[] args) { // TODO Auto-generated method stub SelfConvey aa=new SelfConvey(); aa.changeTemp(aa); System.out.println(aa.getTemp()); }}
- 单例模式
好像只能解决构造方法私有化 - 内部类(暂且放下)
- set和get方法(this里面都是这种)
0 0
- Java学习----day5——(3)面对对象程序设计基础篇(具体篇)
- Java学习----day5——(1)面对对象程序设计基础篇
- Java学习----day6——(1)面对对象程序设计进阶篇之继承篇
- Java学习----day6——(2)面对对象程序设计总结【题目详解】
- Android学习之Java基础篇day5
- Java——面对对象的基础
- Java复习总结:Java面向对象程序设计 —面向对象(基础篇)
- Java学习----day5——(2)方法的重载
- android基础篇------------java基础(4) (面向对象程序设计)
- java/面对对象基础
- 黑马程序员_java基础篇操作对象ObjectStream,管道流,随机存储Day5(下)
- PHP基础学习day5(继承)
- 黑马程序员——Java基础——面对对象
- Java学习----day2——(4)面对对象编程的概念理解
- java—学习笔记(java语言程序设计基础篇&java程序设计)
- 黑马程序员——Java面对对象(一)
- 黑马程序员——Java面对对象(二)
- Java面对对象编程---学习笔记(JAVA语言基础)
- 116:Kth Largest Element in an Array
- 关于质数的几个定理
- 急求:json中的键值对问题
- 域名系统
- 需要加强
- Java学习----day5——(3)面对对象程序设计基础篇(具体篇)
- javaBean无法被解析以及servlet无法被识别
- C++实现单例模式
- JAVA开发规范
- 如何 实现 input 判断客户输入的首字母必须为m
- android studio 安装时,出现这个问题,该怎么解决?
- 【转载】Statement和PreparedStatement之间的区别
- Ubuntu zimbra 8.6.0 迁移(安装也可以参考)
- React-native之flexDirection,justifyContent