本文实例讲述了Java面向对象程序设计:类的定义,静态变量,成员变量,构造函数,封装与私有,this概念与用法。分享给大家供大家参考,具体如下:
注:函数和方法是一样东西。【由于我之前学习的时候有些书籍不是同样的说法,书看多了,我就习惯了不同情况下用不同的说法】
首发时间:2018-03-22





class Dog{
String name;
int foot=4;
Dog(){//这是一个构造函数
this.name="旺财";
}
void hello() {
System.out.println("hello,this is a dog");
}
static void static_hello() {
System.out.println("hello,this is a dog too");
}
}
public class Demo {
public static void main(String args[]) {
Dog d=new Dog();
System.out.println(d.foot);//4
d.hello();//hello,this is a dog
d.static_hello();//hello,this is a dog too
Dog.static_hello();//hello,this is a dog too
}
}
根据变量、方法是否有static修饰可以分为实例变量,实例方法和静态变量(类变量),静态方法(类方法)
被static修饰的成员的特点:
随着类的加载而加载,优先于对象存在,静态成员内存位于方法区
被所有对象所用享【所以可称为类变量或类方法】
可以直接类名调用
静态方法只能访问静态成员
静态方法中不可以写this,super关键字
实例变量\方法跟静态变量\方法的区别好比:“泰迪狗类”比如有一个共有属性“狗种类名”,那么这个属性应该是所有泰迪狗都有的,并且是泰迪狗共享的,如果某一天人类想改泰迪狗的种类名称,那么应该是所有泰迪狗都改的(静态的);而每一只泰迪狗都有自己的主人,这是由每一只狗自身决定的,所以这是特有属性,即使这只狗换了主人,也不会影响别的狗。(实例的)
class Dog{
String name;
Dog(){
this.name="旺财";
}
Dog(String name){
this.name=name;
}
}
public class Init_usage {
public static void main(String args[]) {
Dog d3=new Dog();
Dog d4=new Dog("小菜");
System.out.println(d3.name);
System.out.println(d4.name);
}
}


class Man{
private int money;
String name;
Man(String name,int money){
this.name=name;
this.money=money;
}
int getmoney(){
return money;
}
void setMoney(int money){
this.money=money;
}
}
public class Private_usage {
public static void main(String[] args) {
Man m=new Man("lilei",2000);
System.out.println(m.name);//lilei
// System.out.println(m.money);//报错的,因为私有了,不能访问
// System.out.println(m.wife);//报错的,因为私有了,不能访问
System.out.println(m.getmoney()); //2000
m.setMoney(6000);
System.out.println(m.getmoney());//6000
}
}
类中的成员变量默认是带有this前缀的,但遇到同名时必须加以区分。
this加上参数列表(this(参数))的方式就是访问本类中符合该参数的构造函数
用于调用构造函数的this语句必须放在第一行,因为初始化动作要优先执行
class Person{
String name;
int age;
Person(String name,int age){
this.name=name;
this.age=age;
}
void hello() {
this.sysprint();
// sysprint();
}
void sysprint() {
System.out.println("hello world!");
}
}
public class This_usage {
public static void main(String args[]) {
Person p1=new Person("lilei",18);
p1.hello();//hello world!
}
}
更多关于java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。