java view类是什么(JAVA View类)
其实java view类是什么的问题并不复杂,但是又很多的朋友都不太了解JAVA View类,因此呢,今天小编就来为大家分享java view类是什么的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
java中,在一个类中在写一个类有什么用处啊有那些好处呢
那个叫内部类
定义在一个类内部的类叫内部类,包含内部类的类称为外部类。内部类可以声明public、protected、private等访问限制,可以声明为abstract的供其他内部类或外部类继承与扩展,或者声明为static、final的,也可以实现特定的接口。static的内部类行为上象一个独立的类,非static在行为上类似类的属性或方法且禁止声明static的方法。内部类可以访问外部类的所有方法与属性,但static的内部类只能访问外部类的静态属性与方法。
外部类按常规的类访问方式使用内部类,唯一的差别是外部类可以访问内部类的所有方法与属性,包括私有方法与属性。如:
pinner p= new pinner();
p.index= 20;
p.Print();
----这种方式适合外部类的非static方法;
pouter po= new pouter();
pinner pi= po.new pinner();
pi.index= 40;
pi.Print();
----这种方式适合外部类的static方法;
内部类类似外部类的属性,因此访问内部类对象时总是需要一个创建好的外部类对象。内部类对象通过‘外部类名.this.xxx’的形式访问外部类的属性与方法。如:
System.out.println("Print in inner Outer.index="+ pouter.this.index);
System.out.println("Print in inner Inner.index="+ this.index);
如果需要在其他类中访问内部类,可以使用:
(1)外部类提供创建内部类的方法供其他类使用。如:
//外部类
pinner getInner()
{
return new pinner();
}
//其他类
pouter.pinner pi= po.getInner();
pi.Print();
(2)直接创建内部类的对象。如:
pouter po= new pouter();
pouter.pinner pi= po.new pinner();
pi.Print();
内部类可以声明在外部类的方法中或语句块中。如果内部类需要访问包含它的外部类方法或语句块的局部变量或参数,则该局部变量或参数必须是final的。外部类的其他方法、其他类无法访问声明在方法内部或块内部的内部类。
如果一个类继承内部类,则创建该类的对象时需提供一个外部类的对象作为构造方法的参数。如:
class Car
{
class Wheel
{
}
}
class SuperWheel extends Car.Wheel
{
SuperWheel(Car car)
{
car.super();
}
public static void main(String [] args)
{
Car car= new Car();
SuperWheel wl= new SuperWheel(car);
}
}
如果创建命名的内部类没有多少实际意义时,可以创建匿名的内部类。比如使用内部类实现接口的功能(如事件处理器、适配器等),而功能的差异较大,需要根据实际的情况创建相应的内部类时,可以使用匿名内部类。简单的示例如下:
interface WebView
{
void doGet();
}
class A
{
WebView ShowName()
{
return new WebView()
{
void doGet()
{
System.out.println("Name");
}
};
}
WebView ShowCode()
{
return new WebView()
{
void doGet()
{
System.out.println("Code");
}
};
}
}
最后,JAVA内部类还有一个作用,那就是实现JAVA的多继承。JAVA本身是不允许多继承的,如果我们想一个类继承多个基类,就可以使用内部类。通过内部类分别继承一个基类,外部类创建内部类的对象,并使用内部类的方法,变相地实现了多继承。
Java中ModelAndView是做什么的
这是MVC中的两个模块
Model是指数据模型
View是指UI视图
另外Control是指控制流
为什么要用MVC,目前凡是涉及到UI有界面的程序,最好采用MVC模式来设计。
View:我们要专门有一个模块,还存放所有的UI组件库,按钮,图片,文本框,列表,菜单等等,这些东西都是死的,没有内容。比方说文本框,你从组库中把文本框拿出来,默认里面没有任何文字。
Model:我们的数据模型,如果是面向对象的程序,那就是一个个的数据类。如学生,老师,汽车,职员等等。他们也可以理解成数据结构。我们必须有一个专门的模块来存放这些结构。结构也是死的,如果没有把他拿出来用,他就永远躺上该模块中。
Control:控制者,可以理解成一段代码,它会根据当前的程序状态机,将合适的数据模型中的数据填充到UI视图中。也可以反过来通过监听UI组件的变化,将一部分变化写回数据模型中。
举例:
用户注册界面,
有四个 UI组件 1。文本框提示用户一些注册信息 2。两个输入型文本框可以让用户输入帐号和密码 3。一个按钮。
这里,Model是用户资料
View就是这四个UI组件
而Control需要程序加上代码:
当按钮被按下,首先生成User的实例,其实从两个输入框中分别获取字符串,将user的id和password赋值。保存user实例或者发送到server端。
在这个过程中,三个模块各司其职,尽可能少地相互不干涉。特别是model和view之间不干涉,而control是桥梁。
以上是对java的MVC模式的广义解说。
MVC在java的web应用中还有狭义的解说,也就是B/S中常用的MVC架构,具体可以查询这方面资料。
JDK中的javac,java,appletviewer各有什么作用,要详细
javac:Java编译器,将Java源代码(java后缀)换成字节码文件(class后缀)。
我们编写的java程序并不是基于某一个软硬件平台,而是基于使用版本的JDK提供的“虚拟”系统(JVM)提供的API方法,因此要把它(java后缀文件)翻译成JVM能能识别的class字节码文件
java:Java解释器,执行字节码文件(class后缀文件,运行它就算真正在系统上运行java程序了)。
JVM根据不同的软硬件系统提供或支持的功能统一虚拟化了一系列的API方法,再根据指定的class文件执行这些API方法
因此java工作的顺序是:1.编写java源代码(java后缀)>2.通过javac将java源代码编译为字节码文件(class后缀)>3.将程序迁移到到具体要执行的机器上(你现在一般就是在自己的机器上)后用java执行相应的字节码文件这个java程序就能正确执行了。
appletviewer(小程序浏览器):没什么了解,你自己看看吧http://baike.baidu.com/view/1825739.htm
JAVA View类
//回调View视图里的onMeasure过程
private void onMeasure(int height, int width){
//设置该view的实际宽(mMeasuredWidth)高(mMeasuredHeight)
//1、该方法必须在onMeasure调用,否者报异常。
setMeasuredDimension(h, l);
//2、如果该View是ViewGroup类型,则对它的每个子View进行measure()过程
int childCount= getChildCount();
for(int i=0;i<childCount;i++){
//2.1、获得每个子View对象引用
View child= getChildAt(i);
//整个measure()过程就是个递归过程
//该方法只是一个过滤器,最后会调用measure()过程;或者 measureChild(child, h, i)方法都
measureChildWithMargins(child, h, i);
//其实,对于我们自己写的应用来说,最好的办法是去掉框架里的该方法,直接调用view.measure(),如下:
//child.measure(h, l)
}
}
//该方法具体实现在ViewGroup.java里。
protected void measureChildWithMargins(View v, int height, int width){
v.measure(h,l)
}
关于java view类是什么的内容到此结束,希望对大家有所帮助。