一个新手的java之旅(4)
- 什么是面向对象
什么是面向对象这个我在听了讲课后也依然不懂,但还是来写一写我的理解。这个理解肯定有不对的地方,但水平所限也没办法。在我看来面向对象就是指它判断是否成功的标准是对象。因此它的设计是为了更好的实现对象。比如我要组装一台电脑,如果在拼装的过程中我的硬盘坏了,我要怎么办?最好就是换一个,继续组装。只要我的电脑组装成功了就行。java中类的这些理念我觉得就很符合这一情况。一个类出问题了,改或换就行了。
public class Person {
String name;
public void work() {
System.out.println("Work");
}
}
public class PersonTest
{
public static void main(String[] args)
{
Person xxx = new Person();
xxx.work();
}
}
C:\Users\86189\Desktop>javac PersonText.java
C:\Users\86189\Desktop>java PersonText
Work
在上图中的代码中,Person xxx = new Person();这里的Person xxx是引用,这里存的是地址,在遇到new 类名()时,系统会在堆内存中开辟一块内存,用来存放对象的属性。在这里Person xxx就像指针一样,指向堆内存中的对象。这个".“和C语言结构体中的”.“一样。意思是"的”。
3. 在程序中直接访问成员属性是很危险的,数据要有保密性。我们要将成员属性私有化,私有化后,在其他类中对象无法访问它私有的属性的。那么如何操作私有的成员属性呢?在类中设计一个调用私有属性的方法即可。
4.User类中有Student类型的成员属性,Student类中有Address类型的成员属性,Address类中有String addressName成员属性。
public class User {
Student stu = new Student();
}
public class Student{
Address add = new Address();
}
public class Address{
private String addressName;
public void setAddressName(String uAddressName){
addressName = uAddressName;
}
public String getAddressName(){
return addressName;
}
}
public class SetAndGet {
public static void main(String[] args){
User user = new User();
user.stu.add.setAddressName("11");
String uName = user.stu.add.getAddressName();
System.out.println(uName);
}
}
C:\Users\86189\Desktop>javac SetAndGet.java
C:\Users\86189\Desktop>java SetAndGet
11
(注意不是void的方法要有返回值)
这个内存图是自己画的,有错漏之处请见谅。