抽象造型总结 第1篇
返回值(void 和return)、方法名、方法体
---------------------------------------------------------------------------------------------------------------------------------
对象:单个个体
类:具体一类个体
类是对象的模子,对象是类型的具体实例
对象的属性/特征------成员变量
对象的行为/动作-----方法
抽象造型总结 第2篇
1.由static修饰
2.属于类,在类被加载期间自动执行,一个类只能被加载一次,所以静态块之执行一次
3.加载/舒适化静态资源(图片、音频、视频)
1.修饰变量:变量不能再改变
2.修饰方法:方法不能被重写
3.修饰类:类不能被继承
---------------------------------------------------------------------------------------------------------------------------------
1.必须声明同时初始化
2.类名点来访问,不能改变
3.建议:常量名所有字母都要大写,多个单词用_分割
4数据不变,并且经常使用
2.只有方法的定义,没有具体实现
1.由abstract修饰
2.包含抽象方法必须是抽象类
3.抽象类被继承抽象方法需要被重写
抽象类的意义:
封装共有的属性和行为
为派生类提供统一的类型-------向上造型
1. 抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。
2. 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
3. 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。
4. 构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。
5. 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。
---------------------------------------------------------------------------------------------------------------------------------
7-1成内部类:
1.类中套类
2.内部类通常只服务外部类,对外不具可见性
3.内部类中可以直接访问外部类的成员包括私有的
内部类中有一个隐式的引用指向了创建它的外部类对象:外部类.this
7-2匿名内部类:
1.若想创建一个类(派生类)的对象,并且对象只能被创建一次
2.在匿名内部类中默认外面的变量为final的
---------------------------------------------------------------------------------------------------------------------------------
1.是一种引用型数据类型
2.由interface定义
3.接口不能实例化
4.只能包含常量和抽象方法
5.接口需要被实现/基础的,抽象方法必须重写
6.一个类可以实现多个接口
7.接口可以实现接口
1.一个接口可以有多个方法。
2.接口文件保存在 .xxxa 结尾的文件中,文件名使用接口名。
3.接口的字节码文件保存在 .class 结尾的文件中。
4.接口相应的字节码文件必须在与包名称相匹配的目录结构中。
1.接口不能用于实例化对象。
2.接口没有构造方法。
3.xxx所有的方法必须是抽象方法,Java 8 之后 xxx可以使用 default 关键字修饰的非抽象方法。
4.接口不能包含成员变量,除了 static 和 final 变量。
5.接口不是被类继承了,而是要被类实现。
6.接口支持多继承。
1. 抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是xxx的方法不行。
2. 抽象类中的成员变量可以是各种类型的,而xxx的成员变量只能是 public static final 类型的。
3. xxx不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法。
4. 一个类只能继承一个抽象类,而一个类却可以实现多个接口。
---------------------------------------------------------------------------------------------------------------------------------
1.所有抽象方法都是多态的
2.所有对象都是多态的
1.超类类型的引用指向派生类的对象
2.能点出来什么,看引用的类型
3.能造型成为的数据类型有:超类+所实现的接口
1.引用所指向的对象,就是该对象
2.引用所指向的对象,实现了该接口或继承了该类
建议:强转之前先通过instanceof判断引用的对象是否是该类型
1. 消除类型之间的耦合关系
2. 可替换性
3. 可扩充性
4. 接口性
5. 灵活性
6. 简化性
父类引用指向子类对象:Parent p = new Child();
---------------------------------------------------------------------------------------------------------------------------------
1.存储new出来的对象(包括实例变量)
2.垃圾:没有任何引用所指向的对象
垃圾回收器(GC)不定时到内存中情理垃圾,回收过程是透明的(看不到的)
3.创建(new)对象时存储在堆中,对象被回收一并回收:生命周期
4.内存泄漏:不再使用的对象没有被及时的回收,严重的泄漏会导致系统的崩溃
建议:不再使用的对象应及时将引用设置为null
1.存储在调用周期的局部变量(包括方法的参数)
2.调用方法时,会把栈中该方法分配一块对应的栈帧,栈帧 中存储局部变量(包括方法的参数),方法调用结束时,栈帧被自动清楚,局部变量一并被清楚
存储.class字节码文件(包括静态变量、所有方法)
方法只有一份,通过this来调用
对字符串有一个优化措施:字符串常量池(堆中) 推荐我们使用字面量/直接量的方式来创建字符串,并且会缓存所有以字面量形式创建的字符串对象到常量池中,当使用相同字面量再创建对象时将复用常量池中的对象以减少内存开销,从而避免内存中堆积大量内容相同的字符串对象
---------------------------------------------------------------------------------------------------------------------------------
使用final修饰,不能被继承 中的String在内存中采用Unicode编码方式,任何一个字符占用两个字节的编码 字符串底层封装的是一个字符数组 3.字符串一旦创建,对象内容永远无法改变,但字符串引用可以重新赋值------不变对象
(一)String(char[]) 写法1:char a[]={'g','o','o','d'}; String s=new String(a); 等价于: String s=new String(_good_); (二)String(char a[], int offset,int length) offset:表示开始截取字符串的位置, length:表示字符串的长度。 写法一: char a[]={'s','t','u','d','e','n''t'}; String s=new String(2,4); 等价于 String s=new String(_uden_) String substring(int start,int end); (三)两种查找字符串的方法 ():搜索的字符首次出现的位置 ():搜索字符串最后一次出现的位置 (四)字符串截取 (int beginIndex):从指定的索引位置开始截取直到该字符串结尾的子串。 (int beginIndex, int endIndex):从字符串某一索引位置开始截取至 某一索引位置结束的子串。 (五)去除空格 trim():返回字符串的副本,忽略前导空格和尾部空格。 (六)字符串替换 replace():实现指定字符串替换成新的字符或字符串 (七)判断字符串的开始与结束是boolean ():判断当前字符串对象的前缀是否为指定字符串。 prefix:前缀的字符串 ():该方法判断当前字xxx象的后缀是否为指定字符串。 suffix:后缀字符串 (八)判断字符串是否相等 ():如果两个字符串的长度和具有相同的字符,输出true;
()忽略大小写 (九)安装字典顺序比较两个字符串 compareTo():按照字典顺序比较两个字符串,基于unicode值 (十)字母大小写转换 toLowerCase():将大写字母转成小写字母 toUpperCase():将小写字母转换成大写字母 (十一)字符串分割,分割符| (String sign):sign为分割字符串的分割复,也可以使用正则表达式 (String sgin,int limit):给定的分割xxx文字进行拆分,并且限制次数。 (十二)日期和时间字符串格式化 ①日期格式化 Date date=new Date(); String s=(_%te_,date);0
(十三)String的静态方法valueOf():将其它数据类型转换为String
由于String是不变对象,每次修改内容要创建新对象,因此String不适合做频繁修改操作,为了解决这个问题,xxxa提供了StringBuilder类。 StringBuilder是专门用于修改字符串的一个API,内部维护一个可变的char数组,修改都是在这个数组上进行的,修改速度、性能优秀,并且提供了修改字符串的常见的方法:增、删、改、插
append():追加内容 replace():替换部分内容 delete():删除部分内容 insert():插入内容 reverse():翻转内容
补充:
StringBuilder和StringBuffer: StringBuffer:是线程安全的,同步处理的,性能稍慢 StringBuilder:非线程安全的,并发处理的,性能稍快
---------------------------------------------------------------------------------------------------------------------------------
1.正则表达式定义了字符串的模式。
抽象造型总结 第3篇
指代当前对象的超类对象
3-3-1super的用法:
.成员变量-------访问超类的成员变量
.方法名()-------访问超类的方法
()----------调用超类的构造方法
---------------------------------------------------------------------------------------------------------------------------------
1.超类型的引用指向派生类的对象
2.能点出什么,看引用的类型
1.发生在超类中,方法名相同,参数列表相同
2.重写方法被调用时,看对象的类型
4-2-1重写遵循“两同两小一大”原则:
1.两同:方法名相同,参数列表相同
2.两小:xxx生类方法的返回值类型小于或等于超类方法(void和基本类型必须相等、引用类型时,小于或等于)
---- xxx生类方法抛出异常小于或等于超类的
3.一大:派生类的方法的访问权限大于或等于超类的
返回类型与被重写方法的返回类型可以不相同,但是必须是父类返回值的派生类
父类的成员方法只能被它的子类重写
声明为 static 的方法不能被重写,但是能够被再次声明。
子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为 private 和 final 的方法。
子类和父类不在同一个包中,那么子类只能够重写父类的声明为 public 和 protected 的非 final 方法
构造方法不能被重写。
---------------------------------------------------------------------------------------------------------------------------------
抽象造型总结 第4篇
int binarySearch(Object[] a, Object key):用二分查找算法在给定数组中搜索给定值的对象(Byte,Int,double等)。
boolean equals(long[] a, long[] a2):如果两个指定的 long 型数组彼此相等,则返回 true
fill(int[] a, int val) 将指定的 int 值分配给指定 int 型数组指定范围中的每个元素。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。
fill(int [] a,int fromIndex,int endIndex,int value);(不包括最后一个元素)
(Object); //从小到大排序
(object,length) 复制数组
---------------------------------------------------------------------------------------------------------------------------------
1.封装一段特定的业务逻辑功能
2.尽肯能的独立
3.减少代码重复
4.方法可以重复使用
抽象造型总结 第5篇
”内容:用瓦楞纸制作坐具,规格自定。
要求:实现功能。如:坐、靠、躺等;不易破损;尽可能节约材料;易携带、少占空间;造型新颖、美观;加工便利,制作工艺精良。
输出:实验性草模型、最终作品、PPT(研究过程的灵感、草图、作品图片,设计说明)”
找废纸箱,体会纸板的折痕怎么加工。
熟悉纸板的加工工具。
草模型放样到产品。
——————————————————————
清华大学-综合造型设计基础(国家级精品课)
抽象造型总结 第6篇
[]:表示一个字符,该字符可以是[]中指定的内容 例如: [abc]:这个字符可以是a或b或c [a-z]:表示任意一个小写字母 [a-zA-Z]:表示任意一个字母 [a-zA-Z0-9_]:表示任意一个数字字母下划线 [^abc]:该字符只要不是a或b或c 预定义字符: .:表示任意一个字符,没有范围限制 d:表示任意一个数字,等同于[0-9] w:表示任意一个单词字符,等同于[a-zA-Z0-9_] s:表示任意一个空白字符 D:表示不是数字 W:不是单词字符 S:不是空白字符 量词: ?:表示前面的内容出现0-1次 例如: [abc]? 可以匹配:a 或 b 或 c 或什么也不写 +:表示前面的内容最少出现1次 例如: [abc]+ 可以匹配:b或aaaaaaaaaa...或.... 但是不能匹配:什么都不写 或 ... *:表示前面的内容出现任意次(0-多次)---匹配内容与+一致,只是可以一次都不写 例如: [abc]* 可以匹配:b或aaaaaaaaaa...或....或什么也不写 但是不能匹配:... {n}:表示前面的内容出现n次 例如: [abc]{3} 可以匹配:aaa 或 bbb 或 aab 或abc 或bbc 但是不能匹配: aaaa 或 aad {n,m}:表示前面的内容出现最少n次最多m次 例如: [abc]{3,5} 可以匹配:aaa 或 abcab 或者 abcc 但是不能匹配:aaaaaa 或 aabbd {n,}:表示前面的内容出现n次以上(含n次) 例如: [abc]{3,} 可以匹配:aaa 或 aaaaa.... 或 abcbabbcbabcbabcba.... 但是不能匹配:aa 或 abbdaw... ()用于分组,是将括号内的内容看做是一个整体 例如: (abc){3} 表示abc整体出现3次. 可以匹配abcabcabc 但是不能匹配aaa 或abcabc (abc|def){3}表示abc或def整体出现3次. 可以匹配: abcabcabc 或 defdefdef 或 abcdefabc 但是不能匹配abcdef 或abcdfbde
是所有类的鼻祖,所有类都直接或间接继承了Object,万物皆对象,为了多态 Object中有几个经常被派生类重写的方法: toString()和equals() 调用toString()时默认返回: 类的全称@地址,没有参考意义,所以常常重写toString()返回具体数据 调用equals()时默认比较的还是==(即比较地址),没有参考意义,所以常常重写equals()来比较具体的属性值 需要注意:xxxa的类(String)已经重写equals()了,但我们自己定义的类必须自己重写equals() 派生类重写equals()的基本规则: 1)两个对象必须是同一个类型,若类型不同则返回false 2)若参数对象为null,则返回false 3)原则上两个对象要比较对象的属性是否是相同
xxxa定义了8个包装类,目的是为了解决基本类型不能直接参与面向对象开发的问题,使得基本类型可以通过包装类的实例以对象的方式存在 包括:Integer、Character、Byte、Short、Long、Float、Double、Boolean。其中Character和Boolean是直接继承自Object的,而其余6个包装类都继承自 推出了一个新的特性:自动拆装箱,该特性是编译器认可以,当编译器编译时若发现有基本类型与包装类型相互赋值时,将会自动补充代码来完成他们的转换工作,这个过程称为自动拆装箱
---------------------------------------------------------------------------------------------------------------------------------
什么是2进制:逢2进1的计数规则,计算机中的变量/常量都是按照2进制来运算的 2进制: 规则:逢2进1 数字:0 1 基数:2 权:128 64 32 16 8 4 2 1 如何将2进制转换为10进制: 将一个2进制数每个1位置的权值相加即可----------正数 什么是16进制:逢16进1的计数规则 16进制: 规则:逢16进1 数字:0 1 2 3 4 5 6 7 8 9 a b c d e f 基数:16 权:4096 256 16 1 用途:因为2进制书写太麻烦,所以常常用16进制来缩写2进制数字 如何缩写:将2进制从最低位开始,每4位2进制缩写为1位16进制 补码: 计算机中处理有符号数(正负数)的一种编码方式,xxxa中的补码最小类型是int,32位数 以4位2进制为例讲解补码的编码规则: 计算的时候如果超出4位数就自动溢出舍弃,保持4位数不变 将4位2进制数分一半作为负数使用 最高位称为符号位,高位为1是负数,高位为0是正数 深入理解负值: 记住-1的编码是32个1 负值:用-1减去0位置对应的权值 互补对称: 结论:一个数的补码=这个数取反+1(取反+1) 公式: -n=~n+1 6的补码=6取反+1 -3的补码=-3取反+1
抽象造型总结 第7篇
#题目:分析一个”爬行动物“的移动机能。
”限定条件:
1,环境:是教室内搭建的4M*的沙盘。
2、材料:木板、ABS板、铁丝、螺丝。
3、工具:锯子、尺子、美工刀、胶带。
4、动力:橡皮筋。
目标:依照给出的条件,做出装置。
时间:10天。“
小组选择毛毛虫。
毛毛虫一生的资料搜集。
有条件要去抓一只毛毛虫来观察。
对运动关节点做原理分析,以及伸缩的特质做人工物的对照。
对毛毛虫的每一个吸盘脚做分析。
分析找出运动规律,画出运动步骤解析示意图:弓腰—伸直—弓腰—伸直。
分析动力。用螺旋桨来铰动橡皮筋获得动力。
思考什么样的装置能实现既传神,又能移动。画出草图,制作模型试验。
可以装轮子,可以爬动、扭动、前行的。形成一系列的推导。
把零部件的原理摸透以后,要求对装置的拟态思考,可以走动了,能否走得更轻盈?结构是否可以更简约?能否更像毛毛虫行走的形态靠拢?
人工模拟装置。
实验每个部件能否顺畅运行,加工尺寸是否要调整,有了成果,马上拿到沙盘上测试。
反复探索和实验。(他们做了将近100次实验)
有的原理需要大幅调整,要说明理由。要求要画图纸,在图纸上,理论上形成更深层次的总结,再做详细的模型。
全班分小组答辩,各自的结果写下批评性的整理,写出评价报告。
抽象造型总结 第8篇
要求:棋盘300X300。材料不限,创作一套国际象棋。要关注整体是用什么语法规则来贯穿的?它们之间的个性和家族性的共性。
目标:造型与语义的训练,通过国际象棋的课题,希望同学们理解造型语法、语义,什么是设计语言?设计语言关注什么关系,以及更简练和抽象的表达。
从兵开始做,因为兵是基本型。
兵,是梯形。
马,是马头前倾的姿态。
象,用十字城堡的语言。
车,在顶面和立面做了三角形。(单独看三角形看不出什么意义,放在一组中就有了语义。)
王和后,男性和女性有基本的表达。
统一性:底面做了个倒角,有种轻盈的向上的感觉。整体是梯形的基本型。
锋线是她很关键的形式语言。锋线的走势不同,来区分个体的不同。每个棋子有它的个性,放在一起又有同性。
把兵抽象成一个基本型,一个立方体上来一个纵向的空间,兵是向前走的。在王和后之间的推敲变化很有意思,基本语法都是把纸剪下来编织,把后卷成圆形,把xxx直角。
她的语法规则是每个棋子的走法,是她深层的结构关系。把这种结构关系转译成了形态,这就是xxx基的转换生成语法。
把纸简单的折叠制造形态,制作工艺上统一了语法规则。其次,每张纸都剪成大小一样的三角形,通过折叠产生体量的变化。
王,就是简单的折叠,xxx威。
后,在脖子部位进行堆折,比王小一点,产生了丰富的细节变化。
车、马,简单,表达的也很充分。
象xxx,只是简单的裁剪。
用圆管来表达统一性的语法。是在负空间力表达形态,是非常难的。
整体感很好,但有的推敲还不够。