苹果开发者账号申请(邓氏编码的申请):
在main.xml中:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.li.paintproject.MyView
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
在MyPaintDemo.java中:
package com.li.paintproject;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;
public class MyPaintDemo extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
在MyView.java中:
package com.li.paintproject;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.view.View;
public class MyView extends View {
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(Color.BLACK) ; // 画布为黑色
Paint paint = new Paint() ;
RectF oval = new RectF(); //浮点型的
paint.setColor(Color.YELLOW);
paint.setStyle(Style.STROKE); //空心的
oval = new RectF();
//扇形左上角坐标(80.0f,120.0f),右上角坐标(400.0f,200.0f)
oval.set(80.0f,80.0f,500.0f,500.0f);
canvas.drawArc(oval, 150.0f, 140.0f, true, paint);
}
}
面向对象_封装
1. 面向对象:三大特征:封装,继承,多态。
2. 以后开发,其实就是找对象使用,没有对象,就创建一个对象。
3. 找对象,建立对象,使用对象,维护对象关系。
4. 类和对象的关系:
类就是:对现实生活中事物的描述。
对象:就是这类事物,事实存在的个体。
5. 定义类:其实就是在描述事物,就是定义属性和行为,属性和行为共同成为类中的成员(成员变量和成员方法)。
6. 类类型变量指向对象。
7. 对象通过new 关键字建立对象的目的是为了封装数据。
8. 成员变量和局部变量:
(1).作用范围:
成员变量:作用于整个类中,
局部变量:作用于函数中。或者语句中。
(2).在内存中的位置:
成员变量:在堆内存中,因为对象的存在,才在内存中存在。
局部变量:存在栈内存中。
9. 匿名对象:
使用方式1:当对对象的方法只调用一次时,可以用匿名对象来完成,这样可以简化书写。如果对个对象进行多个成员调用,必须给这个对象起个名字。
使用方式2:可以将匿名对象作为实际参数进行传递。
10.封装(Encapsulation):是指隐藏对象的属性和实现细节,进对外提供公共访问方式。
好处: 变化隔离。
便于使用。
高重用性。
高安全性。
封装原则:
将不需要对外提供的内容都隐藏起来。
把属性都隐藏,提供公共方法对其访问。
11.private:私有的,权限修饰符的一种,用于修饰类中的成员(成员变量,成员函数)。 私有只在本类中有效。
注意:私有仅仅是封装的一种表现形式。
之所以对外提供访问方式,就是因为可以在访问方式中加入逻辑判断等语句,对访问数据进行操作,提高代码健壮性。
12.构造函数:对象一建立就会调用与之对应的构造函数。
(1)特点:
1) 函数名与类名相同
2) 不用定义返回值类型
3) 不可写return语句
(2)作用:给对象进行初始化
(3)注意:
1).默认构造函数的特点:当一个类中没有定义构造函数时,那么系统就会默认给该类加入一个空参数的构造函数,当在类中自定义了构造函数时,默认的构造函数就没有了
2).多个构造函数是以重载的形式存在的
(4)构造函数和一般方法的区别:
1)写法上不同。
2)构造函数是在对象一建立就运行,给对象初始化。而一般方法是对象调用才执行,是给对象添加对象具备的功能。
3)一个对象建立,构造函数只运行一次。而一般方法可以被对象调用多次
(5)什么时候定义构造函数呢?当分析事物时,该事物存在具备一些特性或行为,那么将这些内容定义在构造函数中。
13.构造代码块:
(1)作用:给对象进行初始化,对象一建立就运行,而且优先于构造函数执行,
(2)和构造函数区别:
构造代码块是给所有的对象进行统一的初始化,而构造函数是给对应的对象进行初始化。
14.this关键字:
this:看上去是区分局部变量和成员变量同名的情况。
this为什么可以解决这个问题?
this 到底代表的是什么呢?
this 就代表本类的对象,到底代表哪一个呢?
this代表它所在函数所属对象的引用。简单说:哪个对象在调用this所在的函数,this就代表哪个对象。
this的应用:当定义类中功能时,该函数内部要调用到该函数对象时,这时用this来表示这个对象。但凡本类功能内部使用了本来对象,都用this表示
注意:构造函数间调用只能用this语句
this语句只能定义在函数的第一句,因为初始化要先执行。